仅保留与文件中的正则表达式匹配的值

时间:2014-10-24 02:03:54

标签: regex bash sed

我正在尝试使用bash脚本中的sed修改文件

该文件的格式如下:


asfdsdfad..... : 4.12

aldkfjsadk.... : 3.90

asdlkfjasd.... : 2.33

我想修改文件只包含数字,包括小数。

我想要保留的正则表达式只是[0-9].[0-9][0-9]

目前我一直在尝试使用sed s/[regex]//g 但是,我无法找到正确的正则表达式。所以要么我需要找到一个正确的正则表达式作为上述正则表达式的反转,要么有一个命令来保持正则表达式,而不是删除它。

提前致谢

4 个答案:

答案 0 :(得分:2)

您可以尝试以下正则表达式,这将删除所有内容直到数字。

sed 's/^[^0-9]\+//' file

答案 1 :(得分:1)

...替代

cut -d " " -f 3 file.txt

awk -F " " '{print $3}' file.txt

答案 2 :(得分:1)

sed 's/.*\([0-9]\{1,\}\.\{0,1\}[0-9]*\) *$/\1/' YourFile

只保留数字后跟一个最终的1个点,最后保留在行尾的数字(如果有的话,还删除末尾的空格)

答案 3 :(得分:1)

这可能会:

awk '{$0=$3}NF' file
4.12
3.90
2.33

它也会删除空白行。