Command-Line

替換文件中的單詞

  • January 28, 2018

假設必須在由句子組成的文件(不是單詞列表)中child替換單詞。son

這不是直接的字元串替換;例如,不應發生以下情況:

children不應更改為sonren

但應該發生以下情況:

child.應該改為son.

child!應該改為son!

基本上,要替換的文本必須是一個獨立的單詞,並且必須保留單詞分隔符。

如果不對每個可能的單詞分隔符進行硬編碼,如何做到這一點?

您可以使用sed命令實現此目的:

sed -i 's/\<child\>/son/' /path/to/your/file

-一世

$$ SUFFIX $$, - 到位$$ =SUFFIX $$ 就地編輯文件(如果提供副檔名,則進行備份)。預設操作模式是斷開符號連結和硬連結。這可以通過 –follow-symlinks 和 –copy 進行更改。


考慮到您的範例,使用以下測試文件:

child
child.
child!
children

執行命令,你會得到:

son
son.
son!
children

編輯:child要管理在同一行上 有多個單詞的情況,您必須g在命令中添加: sed -i 's/\<child\>/son/g' /path/to/your/file

引用自:https://unix.stackexchange.com/questions/419365