2011-01-10 13 views
2

ファイル内の文字列を別のものに置き換える必要があります。私は単一のファイルでそれを行う方法を知っています:sed -i 's/a/b/'。しかし、再帰関数はどうでしょうか?私は何とかxargsとfind . -name *を使用しなければならないと思います。linuxでsedを呼び出す

私はあなたの助けが必要です:)

答えて

8

あなたが正しい、findxargsは、使用したいものです。ここでは、現在のフォルダとすべてのサブフォルダにある ".ext"ファイル拡張子を持つすべてのファイルを検索し、aという文字をファイル内のbの文字に置き換えた例を示します。

find . -name "*.ext" | xargs sed -i 's/a/b/g' 
+0

'sedを:編集できませんでした:。sedのではない通常のファイル :./.git/objects/68を編集できませんでした:ない通常のfile' – Ockonal

+0

私は私の中でいくつかのチャゲしようとしていますgit repo。そして、私はそのエラーを取得します。 – Ockonal

+2

検索で「* .ext」の代わりに何を使用していますか?それが "*"であれば、それはディレクトリにも一致し、sedは動作しません。 findコマンドに "-type f"を追加すると、通常のファイルしか取得できません。 –

関連する問題