1
我試圖用.
替換所有出現的->
。我已經試過如下:使用sed替換C++指針字段訪問符號爲一個句點
sed -i s/->/./g licensewizard.cpp
但是,這給了我一個錯誤:
sed: -e expression #1, char 3: unterminated `s' command
我不知道什麼是錯的,因爲既不-
也不>
需要進行轉義,如果我沒有記錯?
我試圖用.
替換所有出現的->
。我已經試過如下:使用sed替換C++指針字段訪問符號爲一個句點
sed -i s/->/./g licensewizard.cpp
但是,這給了我一個錯誤:
sed: -e expression #1, char 3: unterminated `s' command
我不知道什麼是錯的,因爲既不-
也不>
需要進行轉義,如果我沒有記錯?
您需要單引號您的sed命令,以便shell不會嘗試解釋任何字符。在這個特定的例子中,你的shell正在解釋>
字符來嘗試重定向。
sed -i 's/->/./g' licensewizard.cpp
好的呼叫。我不得不使用雙引號,但它意味着同樣的事情。謝謝。 – 2011-03-17 17:53:57
@Andrej小心,雙引號和單引號對shell沒有同等意義。 shell仍然會嘗試擴展'$'和任何像'\ x'這樣的轉義項。 *總是*使用單引號環繞內聯命令,這些命令的語法與shell不同;比如'sed'或'awk'作爲例子。 – SiegeX 2011-03-17 17:58:49
不適用於單引號,但我在Windows上。謝謝你的提示。 – 2011-03-17 19:22:34