我想使用 bash 脚本将一个单词添加到文件中。具体来说,我希望在其中添加一行/etc/nsswitch.conf
来
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
到
hosts: files wins dns mdns4_minimal [NOTFOUND=return] dns myhostname
我一直在尝试sed
,但没有成功。我不知道如何在该文件中搜索单词并替换它或插入单词。
答案1
捕获您不想更改的部分。
sed 's/^\(hosts: *files\) \(mdns4_minimal\)/\1 wins dns \2/' input.file
\(...\)
创建一个捕获组,同时\1
引用第一个捕获组、\2
第二个捕获组等等。^
匹配行的开头。*
意思是“重复前面的内容零次或多次”。我懒得去数空格了。-i
如果要在文件位置进行更改,请添加选项,以创建原始文件的备份副本-i.bak
,或添加-i.default
。