批量提取字符串中的数字

时间:2016-03-17 00:08:41

标签: bash batch-file batch-processing

我的文件格式为Name $4.00,我想提取数字($之后的所有内容),所以我可以稍后比较它们。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

@dekkard提供的答案适用于UNIX。您需要CMD或BAT文件的解决方案。你的问题有点简单,所以为了保持答案的简单,我不能容纳:

  1. 数字后面的字符......如果需要可以添加。
  2. 如果需要,可以容纳数字中的逗号
  3. $在名称/说明字段中,而不是紧接在号码之前
  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
    

答案 1 :(得分:0)

假设列由空格分隔,这应该有效:

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