如何串 sed whole word search and replaceSED整詞的搜索和替換
在HP-UX(B.11.31)的sed替換整個單詞?
$ echo "bar embarassment" | sed "s/bar/no bar/g";
"\bbar\b" does not work
"\<bar\>" does not work
"[[:<:]]bar[[:>:]]" does not work
如何串 sed whole word search and replaceSED整詞的搜索和替換
在HP-UX(B.11.31)的sed替換整個單詞?
$ echo "bar embarassment" | sed "s/bar/no bar/g";
"\bbar\b" does not work
"\<bar\>" does not work
"[[:<:]]bar[[:>:]]" does not work
測試在Solaris,HPUX不
echo "bar embarassment bar foobar bar" |
sed -e 's/\([^[:graph:]]\)bar$/\1no bar/g' \
-e 's/\([^[:graph:]]\)bar\([^[:graph:]]\)/\1no bar\2/g' \
-e 's/^bar\([^[:graph:]]\)/no bar\1/g'
發出
no bar embarassment no bar foobar no bar
由於圖形字符是可見的,因此包含標點符號,因此'[:alnum:]'會比'[:graph:]更好嗎? –
也許吧。取決於OP對「整個詞」的定義,特別是下劃線是一個[[:punct:]'字符。 –
如果你在vim中,你可以使用這個命令:
:% s/\<old\>/new/g
安裝和使用GNU'sed'?使用'perl'來代替?這兩個建議都不全面。從歷史上看,在HP-UX上構建GCC需要一個非標準版本的'sed'(有效的,GNU'sed'),因爲HP提供的版本具有GCC配置腳本無法合理存在的限制。我沒有在HP-UX 11.x系統上構建GCC(10.x是最後一次),所以我不知道這是否仍然是問題。 –