![将尾随单词添加到文件中的特定行](https://linux22.com/image/168999/%E5%B0%86%E5%B0%BE%E9%9A%8F%E5%8D%95%E8%AF%8D%E6%B7%BB%E5%8A%A0%E5%88%B0%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E7%89%B9%E5%AE%9A%E8%A1%8C.png)
例如,我有一个文件包含许多这样的行
AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm
DDD GAGAGAGAGA
AAA IIIII
BBB OOOO
CCC YYYYY
...等等
我想在以 CCC 开头的所有行的末尾添加特定单词。
例如。我想添加“微笑”这个词,所以结果是
AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm smile
DDD GAGAGAGAGA
AAA IIIII
BBB OOOO
CCC YYYYY smile
你能告诉我该怎么做吗?
答案1
sed -i.backup '/^CCC/s/$/ smile/' data.txt
探索这个 sed 命令和程序:
sed -i.backup
就地模式——编辑输入文件并(可选)备份带有后缀(.backup
)的原始文件。/^CCC/
要查找的正则表达式 -^
以 CCC 开头 ( ) 的字符串。s/$/ smile/
搜索 string(s/$/
) 的末尾并将其替换为 smile (smile/
)。
答案2
尝试:
sed -E 's/^(CCC.+)/\1 smile/' <data.in >data.out
您还可以就地编辑:
sed -i -E 's/^(CCC.+)/\1 smile/' data.dat