ファイルの単語を置き換える [重複]

ファイルの単語を置き換える [重複]

(単語リストではなく)文で構成されたファイルで単語を置き換える必要があるとしますchildson

これは直線文字列を置き換えません。たとえば、次のような状況が発生しないでください。

childrenに変更しないでくださいsonren

ただし、次の状況が発生するはずです。

child.に変更する必要がありますson.

child!に変更する必要がありますson!

デフォルトでは、置き換えるテキストはスタンドアロンの単語でなければならず、単語の区切り文字は維持する必要があります。

すべての可能な単語区切り文字をハードコードせずにこれを行うにはどうすればよいですか?

答え1

あなたはこれを達成することができますsed注文する:

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

-i[サフィックス]、--in-place[=サフィックス]

ファイルを所定の位置に編集します(拡張子が指定されている場合はバックアップ)。デフォルトの動作モードは、シンボリックリンクとハードリンクを切断することです。これは--follow-symlinksと--copyを使って変更できます。


次のテストファイルを使用して例を考えてみます。

child
child.
child!
children

コマンドを実行すると、次のようになります。

son
son.
son!
children

編集する: 同じ行に複数の単語が表示されるのを管理するには、次のコマンドを追加する child必要があります。gsed -i 's/\<child\>/son/g' /path/to/your/file

関連情報