我想用文字替換文件中某些字符的所有出現。我的問題是,我可以使用單個命令對所有字符執行此操作嗎?我使用下面的命令用於與替換「A」的每次出現「蘋果」unix找到並替換多個字符的字符串
sed 's/a/apple/g' sample.txt
我不想寫3個或4類似的命令,以取代「B」,「C」的每次出現, 'd'用一些詞語。有什麼方法可以擴展上述命令以滿足我的需要,還是我需要使用相同的三次?
我想用文字替換文件中某些字符的所有出現。我的問題是,我可以使用單個命令對所有字符執行此操作嗎?我使用下面的命令用於與替換「A」的每次出現「蘋果」unix找到並替換多個字符的字符串
sed 's/a/apple/g' sample.txt
我不想寫3個或4類似的命令,以取代「B」,「C」的每次出現, 'd'用一些詞語。有什麼方法可以擴展上述命令以滿足我的需要,還是我需要使用相同的三次?
您可以在sed輸入多個命令使用-e
開關這樣的:
sed -i.bak -e 's/a/apple/g' -e 's/b/bat/g' -e 's/c/cat/g'
要小心,當你在更換'e'字符,因爲它會影響'apple'了'e'以及。您可能需要調查sed的正則表達式功能,特別是「字邊界」字符。 – Intermernet
@Intermernet你認爲我在這種情況下做什麼?我還注意到,使用我提到的命令,我在終端中獲得了替換的輸出,但文件內容未被修改。 – noobcoder
查看'sed -i'。它應該允許就地修改,但有時危險!先複製文件! – Intermernet