プレーン テキストを含む .txt ファイルが約 100 個あります。どういうわけか、一部のデータが破損しており、検索/置換する必要があります。
文字「--」を検索し、長いダッシュ「—」に置き換える必要があります。
ターミナルのコマンドでこれをすばやく行う方法はありますか?
ディレクトリ内の .txt ファイルの名前には、1.txt、2.txt などの順番で番号が付けられています。
ありがとう!
GNU sed
:
sed -i 's/--/—/g' *.txt
OS X BSD sed
:
バックアップ ファイルの拡張子を指定する必要があります。拡張子の付いたバックアップ ファイルを作成するには.txt.bak
:
sed -i '.bak' 's/--/—/g' *.txt
ファイルを完全に置き換えるには、空の拡張子を指定します。
sed -i '' 's/--/—/g' *.txt
sed -i 's/--/–/g' *.txt
動作するはずです。-i
フラグはファイルのsed
インプレースで動作させ、s
は代用を表し、g
は同じ行に複数出現するパターンを置換します。sed
詳細については、 のドキュメントを参照してください。
編集:これは GNU/Linux で動作します。OSXでは構文がわずかに異なることがわかりました(コメントと受け入れられた回答を参照)。