我正在尝试使用bash实现以下功能:
创建一个名为“file”的文件,其中包含以下数据:
line1
line2
line3456
我想在“line2”之后添加其他字符,例如:
line1
line2 test123
line3456
我知道我可以使用sed
替换整行(sed -i 's/line2/line2 test123/' file
)。但我相信有更好的方法可以做到。
我打算修改一行中有多个单词的行,所以也许我也需要通配符。
答案 0 :(得分:2)
sed 's/line2/& test123/' file
如果您要“就地”修改文件,请使用sed的选项-i
。
答案 1 :(得分:1)
使用&
作为匹配模式的反向引用:
sed -i 's/word1 word2 word3/& test123/' file
这会将文字" test123"
添加到其中包含word1 word2 word3
文字的行中。