String 替换bash中的精确字符串
我有一个如下列表:String 替换bash中的精确字符串,string,bash,sed,String,Bash,Sed,我有一个如下列表: server server.apple.com server.apple.com server server.apple.com 现在,我想把“.apple.com”添加到“服务器”的行中。我试过以下方法: sed -e 's/\bserver\b/server.apple.com/g' 您可以使用: sed 's/^server$/server.apple.com/g' ^表示行的开始,$表示行的结束 您也不需要-e参数,因为这只是基本的正则表达式 如果您希望对服务器
server
server.apple.com
server.apple.com
server
server.apple.com
现在,我想把“.apple.com”添加到“服务器”的行中。我试过以下方法:
sed -e 's/\bserver\b/server.apple.com/g'
您可以使用:
sed 's/^server$/server.apple.com/g'
^
表示行的开始,$
表示行的结束
您也不需要-e
参数,因为这只是基本的正则表达式
如果您希望对服务器
进行不区分大小写的搜索(也要匹配服务器
和服务器
),您可以使用I
功能,但是不同版本的sed
不支持该功能:
sed 's/^server$/server.apple.com/Ig'
如果您没有支持I
的sed
版本,您可以使用:
sed 's/^[Ss][Ee][Rr][Vv][Ee][Rr]$/server.apple.com/g'
您可以使用:
sed 's/^server$/server.apple.com/g'
^
表示行的开始,$
表示行的结束
您也不需要-e
参数,因为这只是基本的正则表达式
如果您希望对服务器
进行不区分大小写的搜索(也要匹配服务器
和服务器
),您可以使用I
功能,但是不同版本的sed
不支持该功能:
sed 's/^server$/server.apple.com/Ig'
如果您没有支持I
的sed
版本,您可以使用:
sed 's/^[Ss][Ee][Rr][Vv][Ee][Rr]$/server.apple.com/g'
^
表示行的结束,而$
表示结束,因此这只匹配那些没有额外文本的行
^
表示一行的行尾,$
因此这只匹配没有额外文本的行。“句子”可能不是描述它的最佳词语。“句子”可能不是描述它的最佳词语。谢谢!当你们看到它的时候,这是很明显的:)若我想忽略这个案例?(“服务器”有时在列表中是“服务器”或“服务器”)太棒了!非常感谢!为了让一切变得更加动态,是否有一个正则表达式可以匹配任何没有域的东西,比如:我想匹配每一行不以apple.com或10个子apple.com子域结尾的内容,而不仅仅是特定的服务器名称?让这个不区分大小写?谢谢!当你们看到它的时候,这是很明显的:)若我想忽略这个案例?(“服务器”有时在列表中是“服务器”或“服务器”)太棒了!非常感谢!为了让一切变得更加动态,是否有一个正则表达式可以匹配任何没有域的东西,比如:我想匹配每一行不以apple.com或10个子apple.com子域结尾的内容,而不仅仅是特定的服务器名称?让这个不区分大小写?