sedコマンドを使用して、macOSで一致する行を置き換えます



Use Sed Command Replace Matching Lines Under Macos



たとえば、test.txtファイル内1先頭の行は「aa / bb」に置き換えられます
コマンドを使用する
sed -i '.bak' 's/1.*/aa/bb/' test.txt
どこ:

  • -i '.bak'ファイルを直接操作して追加する.bakバックアップファイルの名前として、-i ''を使用します
  • /s「置換」の略、つまり置換
  • 1.*で表される1先頭のすべての文字列.*正規表現ですべての文字を表す
  • aa/bbエスケープ文字表現を使用するaa/bb
  • 最後に区切り文字が必要であることに注意してください/そうでない場合は、プロンプトが表示されますunterminated substitute in regular expression
  • 区切り文字も使用できます|この場合、特殊記号は文字をエスケープする必要がなく、コマンドは次のようになります。
    sed -i '.bak' 's|1.*|aa/bb|' test.txt
  • ファイル内の複数の同一の文字列を置き換える必要がある場合は、グローバルパラメータgを追加する必要があります。これは次のとおりです。
    sed -i '.bak' 's/1.*/aa/bb/g' test.txt
    または
    sed -i '.bak' 's|1.*|aa/bb|g' test.txt

場合:



#cat test.txt root@xxxxx#$%^&*097qwert 2asdf 3jkl #sed -i '.bak' 's/1.*/aa/bb/' test.txt #cat test.txt aa/bb 2asdf 3jkl