我想在一個文件'
取代的\'
每一個參考查找和替換:」
我使用的變化:sed -e s/\'/"\'"/g file.txt
但他們隨時更換every.single(單)。報價
任何幫助將不勝感激。
我想在一個文件'
取代的\'
每一個參考查找和替換:」
我使用的變化:sed -e s/\'/"\'"/g file.txt
但他們隨時更換every.single(單)。報價
任何幫助將不勝感激。
的方法試圖以節省儘可能多的「單quotednes的的」 sed命令成爲可能:
sed 's/\\'"'"'/\'/g'
只是逃避\
與\\
並得到一個單引號到命令'"'"'
:第一單引號結束命令爲止,然後我們有一個雙引號單報價("'"
),最後是對命令其餘部分的單引號。
另外,雙引號引起整個命令和逃避都反斜槓和單引號:
sed "s/\\\'/\'/g"
正確的語法是:
$ echo "foo'bar" | sed 's/'\''/\'/'
foo'bar
每個腳本(SED,AWK,等等)應始終用單引號引起來,你只需要用其他單引號就可以停止/重新啓動腳本分隔符,這個腳本的最小部分是絕對必要的,在這種情況下,可以使用\'
。你需要打開shell來指定'
,因爲每個shell規則中沒有包含在'
中的腳本可以包含'
,即使你試圖逃避它。
echo "foo'bar" | gawk '{gsub(/\47/,"\\'")}1'
foo'bar
這裏棘手的部分是用&符號替換單引號。 首先,爲了使單引號可管理,在這裏使用八進制 代碼\ 47,然後用兩個反斜槓轉義&符號。突然 它變得可行:)
雖然這段代碼可能會解決這個問題,但[包括解釋](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高您的質量請記住,您將來會爲讀者回答問題,這些人可能不知道您的代碼建議的原因,也請儘量不要使用解釋性註釋來壓縮代碼,這會降低代碼和可讀性的可讀性解釋! – kayess
你想在替換中雙引號,如在「'」? –
雙引號是我試圖讓它顯示'逐字(作爲一個字符串,而不是解析爲正則表達式)。我想他們可能不需要。 – Corey
啊,好吧。在你的版本中,他們不會出現,但如果你單引用整個命令,他們會。 –