我的文本文件如下:
Liquid penetration 95% mass (m) = 0.000205348
Liquid penetration 95% mass (m) = 0.000265725
Liquid penetration 95% mass (m) = 0.000322823
Liquid penetration 95% mass (m) = 0.000376445
Liquid penetration 95% mass (m) = 0.000425341现在,我想从行中删除Liquid penetration 95% mass (m),以获得值。我怎么发动汽车呢?
发布于 2017-10-23 10:06:09
如果只有一个=标志,您可以删除之前的所有内容,并包括如下=:
$ sed -r 's/.* = (.*)/\1/' file
0.000205348
0.000265725
0.000322823
0.000376445
0.000425341如果要更改原始文件,请在测试后使用-i选项:
sed -ri 's/.* = (.*)/\1/' file-r使用ERE,这样我们就不必逃避(和)了s/old/new将old替换为new.*任意数目的任何字符(things)将things保存到稍后使用\1、\2等进行反向引用。发布于 2017-10-23 12:21:43
使用grep和-P实现PCRE (将模式解释为与Perl兼容的正则表达式),并使用-o单独打印匹配的模式。\K通知将忽略前面的匹配部分。
$ grep -oP '.*= \K.*' infile
0.000205348
0.000265725
0.000322823
0.000376445
0.000425341或者您可以使用cut命令代替。
cut -d= -f2 infile发布于 2017-10-23 14:56:00
由于行前缀始终具有相同的长度(34个字符),所以可以使用cut:
cut -c 35- < input.txt > output.txthttps://askubuntu.com/questions/967980
复制相似问题