我想substitue這可能包含正則表達式的元字符到另一個字一個字,例如,substitue的.Precilla123
爲.Precill
,我嘗試使用以下解決方案:如何使用Shell或Perl替換字符串,即使它包含正則表達式元字符?
sed 's/.Precilla123/.Precill/g'
但會低於線改變
"Precilla123";"aaaa aaa";"bbb bbb"
到
.Precill";"aaaa aaa";"bbb bbb"
這種副作用是不是我想要的。所以我嘗試使用:
perl -pe 's/\Q.Precilla123\E/.Precill/g'
上面的解決方案可以禁用解釋正則表達式元字符,它不會有副作用。
不幸的是,如果單詞包含$
或@
,這個解決方案仍然不能工作,因爲Perl保留$
和@
作爲可變前綴。
有人能幫助嗎?非常感謝。
請注意,我想要替換的單詞不是硬編碼的,它來自輸入文件,您可以將其視爲變量。
'ABC $相同efg' =>'abcdefg' – ikegami 2014-10-10 03:08:36
爲什麼不考慮轉義元字符或將它們放入字符類? – 2014-10-10 03:14:21
您是否生成腳本來運行腳本?這聽起來像一個壞主意。你能否展示你如何生成「中間」文件?另外,看看'quotemeta',也許它有幫助。 – 2014-10-10 04:09:21