13

プレーン テキストを含む .txt ファイルが約 100 個あります。どういうわけか、一部のデータが破損しており、検索/置換する必要があります。

文字「--」を検索し、長いダッシュ「—」に置き換える必要があります。

ターミナルのコマンドでこれをすばやく行う方法はありますか?

ディレクトリ内の .txt ファイルの名前には、1.txt、2.txt などの順番で番号が付けられています。

ありがとう!

4

2 に答える 2

37

GNU sed:

sed -i 's/--/—/g' *.txt

OS X BSD sed:

バックアップ ファイルの拡張子を指定する必要があります。拡張子の付いたバックアップ ファイルを作成するには.txt.bak:

sed -i '.bak' 's/--/—/g' *.txt

ファイルを完全に置き換えるには、空の拡張子を指定します。

sed -i '' 's/--/—/g' *.txt
于 2012-08-10T03:48:57.400 に答える
3

sed -i 's/--/–/g' *.txt動作するはずです。-iフラグはファイルのsedインプレースで動作させ、sは代用を表し、gは同じ行に複数出現するパターンを置換します。sed詳細については、 のドキュメントを参照してください。

編集:これは GNU/Linux で動作します。OSXでは構文がわずかに異なることがわかりました(コメントと受け入れられた回答を参照)。

于 2012-08-10T03:48:41.513 に答える