這兩個sed命令出現的行爲相同:混淆關於!字符桑達
$ sed "s/^replace=*/replace=mytest/g" test.txt
$ sed "
s!^replace=*!replace=mytest!g
" test.txt
這是爲什麼?可以使用!
字符而不是/
?我沒有在sed文檔中看到!
字符的很多解釋。
這兩個sed命令出現的行爲相同:混淆關於!字符桑達
$ sed "s/^replace=*/replace=mytest/g" test.txt
$ sed "
s!^replace=*!replace=mytest!g
" test.txt
這是爲什麼?可以使用!
字符而不是/
?我沒有在sed文檔中看到!
字符的很多解釋。
你應該更仔細地閱讀的人的頁面:)
3.5 s命令
的S的語法(如替代)命令的/正則表達式/更換/標誌。在任何給定的s命令中,/字符可以被任何其他單個字符統一替換。 /字符(或任何其他字符代替它)只有在前面加上\字符才能出現在正則表達式或替換字符中。
TL;博士
由於這些人的頁面所提到的,你可以使用任何單個字符作爲sed的regexp
和replacement
的分隔符。
編輯: 感謝Evil Otto晶體清理起來:)
你確定它是''不是'|'(管)!? – iamauser
我相信這是!而不是管道。 – Exploring
小心引用''bash',例如,解釋'!' –