regex - 如果行以关键字结尾,则将字符串添加到行前面

标签 regex string awk prepend

假设一个多行文本文件 ( 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/

相关文章:

java - 如何在java中检查两个用户定义的对象

linux - bash 脚本卡住

regex - Bash 替换文件中的 '\n\n}' 字符串

javascript - 按出现次数替换匹配的正则表达式组

c# - 使用 C# 抓取网页 (html)

C# 正则表达式 : Capture everything up to

linux - 如何在 linux 中传递带引号但带有空格的参数

javascript - Mozilla 雷鸟 "FiltaQuilla"; JavaScript 和正则表达式

regex - 返回重复表达式的集合

java - 如何按字符串对象的升序对对象数组进行排序?