批量从字符串中提取数字

Extracting numbers from string in batch

我有格式为 Name .00 的文件,我只想提取数字($ 之后的所有内容),以便稍后比较它们。我该怎么做?

假设列由 space(s) 分隔,这应该有效:

sed 's/.* \+$\(.\+\)//' your_input_file

@dekkard 提供的答案是针对 UNIX 的。您想要 CMD 或 BAT 文件的解决方案。你的问题有点简单,所以为了让答案简单,我不会接受:

  1. 数字后面的字符...如果需要可以添加。
  2. 数字中的逗号...如果需要可以容纳
  3. $ 在 name/description 字段中,而不是紧接在数字
  4. 之前

您没有指定是否要保留小数点。如果您稍后要进行整数比较,大概您不会这样做。在 BAT 文件中使用其中之一。

如果你不需要小数点:

for /f "tokens=2-3 delims=$." %%a in (YourFile.txt) do echo(%%a%%b

如果你想保留小数点就用这个

for /f "tokens=2-3 delims=$" %%a in (YourFile.txt) do echo(%%a%%b

从 CMD 行使用其中之一

for /f "tokens=2-3 delims=$." %a in (YourFile.txt) do echo(%a%b

for /f "tokens=2-3 delims=$" %a in (YourFile.txt) do echo(%a%b