Bash 困惑!Sed中的字符
这两个sed命令的行为似乎相同:Bash 困惑!Sed中的字符,bash,sed,Bash,Sed,这两个sed命令的行为似乎相同: $ sed "s/^replace=*/replace=mytest/g" test.txt $ sed " s!^replace=*!replace=mytest!g " test.txt 为什么会这样?你能听到字符而不是/?我看不到对的太多解释sed文档中的字符。您应该更仔细地阅读手册页:) : 3.5 s命令 s(在替换中)命令的语法是“s/regexp/replacement/flags”。在任何给定的s命令中,/字符可以统一替换为任何其他单个
$ sed "s/^replace=*/replace=mytest/g" test.txt
$ sed "
s!^replace=*!replace=mytest!g
" test.txt
为什么会这样?你能听到
是否使用代码>字符而不是/
?我看不到对的太多解释代码>sed文档中的字符。您应该更仔细地阅读手册页:)
:
3.5 s命令
s(在替换中)命令的语法是“s/regexp/replacement/flags”。在任何给定的s命令中,/字符可以统一替换为任何其他单个字符。/character(或替代它使用的任何其他字符)只有在前面有\字符时才能出现在regexp或replacement中
tl;博士
正如这些手册页中提到的,您可以使用任何单个字符作为sedregexp
和replacement
的分隔符
编辑:
感谢crystal将其清理干净:)您应该更仔细地阅读手册页:)
:
3.5 s命令
s(在替换中)命令的语法是“s/regexp/replacement/flags”。在任何给定的s命令中,/字符可以统一替换为任何其他单个字符。/character(或替代它使用的任何其他字符)只有在前面有\字符时才能出现在regexp或replacement中
tl;博士
正如这些手册页中提到的,您可以使用任何单个字符作为sedregexp
和replacement
的分隔符
编辑:
感谢crystal将其清理干净:)您确定它是代码>不是一个|(管道)?我肯定是的!注意引用,例如,bash
,解释代码>引用刘海时要非常小心,因为我记得zsh
解释了代码>甚至在引号中。您确定它是代码>不是一个|(管道)?我肯定是的!注意引用,例如,bash
,解释代码>引用刘海时要非常小心,因为我记得zsh
解释了代码>即使在引号中。@Nashid,也可以是任何单个字符,而不是“/”或“!”:)从技术上讲,手册的这一部分描述了如何使用模式匹配解决问题,而与搜索替换功能/语法无关。信息页面更清楚一些:“s”(如替换)命令的语法是“s/REGEXP/REPLACEMENT/FLAGS”。“/”字符可以统一替换为任何给定的“s”命令中的任何其他单个字符。@Nashid,它可以是任何单个字符,而不是“/”或“!”:)从技术上讲,手册的这一部分描述了如何使用模式匹配解决问题,而与搜索替换功能/语法无关。信息页面更清楚一些:“s”(如替换)命令的语法是“s/REGEXP/REPLACEMENT/FLAGS”。“/”字符可以统一替换为任何给定的“s”命令中的任何其他单个字符。