假设一个多行文本文件 ( file
) 和关键字 bar
.
> cat file
foo bar baz
foo bar quux
foo quux bar
以关键字结尾的每一行都应在前面加上字符串 Hello
;不存在的每一行应按原样打印。
> cat file | sought_command
foo bar baz
foo bar quux
Hello foo quux bar
我相信这可以通过awk
来完成(类似于 awk '$ ~ /bar/ {print "Hello", $0}'
),但我无法想出正确的代码,并且希望得到建议。
最佳答案
使用 Awk
,您几乎走在正确的轨道上,只需使用正则表达式 anchor $
来标记行尾,并附加根据需要字符串,
awk '$NF == "bar"{$0="Hello"FS$0}1' file
这将仅将字符串附加到最后具有关键字的行。
关于regex - 如果行以关键字结尾,则将字符串添加到行前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43877468/