Linux 使用sed搜索两个模式并替换为一个
我有一个包含以下内容之一的文件: &信息 或 信息 两人都开始排队。 如果文件包含#消息或消息,我如何在其中搜索,然后用消息替换 谢谢Linux 使用sed搜索两个模式并替换为一个,linux,sed,Linux,Sed,我有一个包含以下内容之一的文件: &信息 或 信息 两人都开始排队。 如果文件包含#消息或消息,我如何在其中搜索,然后用消息替换 谢谢 sed 's/#?messages/Messages/g' ??表示0或1元素 $ sed -r -e 's/^[#]?messages/Messages/' file1 file2 ... fileN 注意模式线起始处的锚定;这不会在输入时混淆,例如: $messages $messages more$messages 还请注意,如果需要,可以使用-r开
sed 's/#?messages/Messages/g'
??表示0或1元素
$ sed -r -e 's/^[#]?messages/Messages/' file1 file2 ... fileN
注意模式线起始处的锚定;这不会在输入时混淆,例如:
$messages $messages more$messages
还请注意,如果需要,可以使用-r开关打开实正则表达式。
-r
是一个GNU扩展,用于激活扩展正则表达式(ERE),而不是“实…”,在这种情况下不需要ERE,只需要基本REs,这是所有SED默认支持的。此外,也没有必要将#
添加到字符列表中,因为它不是重元字符。