首页 > 解决方案 > 如何使用 sed 从字符串中提取负数

问题描述

我需要从一个文件中提取一个负数到另一个文件,我已经为一个正数做了这个,但我不知道如何为负数做这个。

sed -r 's/.* ([0-9]+\.*[0-9]*).*?/\1/' bob.txt > outfile.txt

bob.txt 内容:

outputVoltage.u900 = Opaque: Float: 27.000000 V

outputVoltage.u900 = Opaque: Float: -27.000000 V

上面的代码非常适合正值而不是负值。

在outfile里面,我想有:

27.000000

-27.000000

标签: bashsed

解决方案


只打印第五个字段怎么样:

awk '{print $5}' bob.txt
27.000000
-27.000000

或者搜索一个字符串并打印出来:

awk '/outputVoltage/{print $5}' bob.txt
27.000000
-27.000000

推荐阅读