(単語リストではなく)文で構成されたファイルで単語を置き換える必要があるとしますchild
。son
これは直線文字列を置き換えません。たとえば、次のような状況が発生しないでください。
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
必要があります。g
sed -i 's/\<child\>/son/g' /path/to/your/file