我有一个如下所示的列表:
server
server.apple.com
server.apple.com
server
server.apple.com
现在,我想将“.apple.com”添加到只说“服务器”的行中。我试过用sed:
sed -e 's/\bserver\b/server.apple.com/g'
答案 0 :(得分:2)
您可以使用:
sed 's/^server$/server.apple.com/g'
^
表示行首,$
表示行结束。
您也不需要-e
参数,因为这只是基本的正则表达式。
如果您希望对server
进行不区分大小写的搜索(也匹配SERVER
和SErvEr
),则可以使用I
函数,但不受各种版本的支持sed
:
sed 's/^server$/server.apple.com/Ig'
如果您没有支持sed
的{{1}}版本,则可以使用:
I
答案 1 :(得分:2)
sed 's/^server$/server.apple.com/g' inputfile
^
表示一行的开头,$
表示结尾,因此这只匹配那些没有其他文字的行。