我想請教一下sed的2個問題。差異sed命令的sed的///「和sed 」S ###「
例如,當我試圖把一個字符串sed中包含特殊字符像(。\ n * +)和sed無法正常運行。
set a = ".\n*.\+"
set input = ".\n*.\+adsdfasdf"
然後執行:
echo "$input" | sed 's/'$a'/hi/g' # It will give: sed: No match
但
echo "$input" | sed "s#${a}#hi#g" # It will run but not true
我的問題是:
- 這些命令之間的區別是什麼:sed中的///「和sed 「s ###」
- 如何看待輸入只是因爲它是純粹的字符串?
在bash shell和GNU sed中都給出了'hi'作爲結果'a =「。\ n *。\ +」; 「\ N * \ + adsdfasdf」 輸入=;回聲「$輸入」| sed'/'$ a'/ hi/g'' ....參見https://stackoverflow.com/documentation/sed/1096/substitution#t=201702190808137883167關於使用不同分隔符的一些解釋.. – Sundeep
afaik,沒有辦法告訴sed該字符串被視爲文字,你將不得不逃離元字符以及使用的分隔符 – Sundeep