2016-04-18 8 views
-2

タイトルと同じくらい簡単です。私はネストされたファイルを持っていて、もし彼らが.tomlで終わるなら、それらのコマンドを実行したい。特定の拡張子を持つすべてのファイルに対してコマンドを実行します。

すべてのファイルの上に

find . -type f -exec sed -i '3i value = 1' {} \; 

実行して試みるが、.tomlで終わるファイルだけにそれを行う方法はありますか?

+0

なぜdownvoteですか? – PeterGenius

答えて

3

確かにあります。 -nameスイッチを使用します。

find . -name '*.toml' -type f -exec sed -i '3i value = 1' {} \; 

これは.tomlで終わるすべてのファイルと一致します。 *がシェルによって展開されないようにするために引用符を含めるように注意してください。そのままそのままfindに渡してください。ところで

、あなたの代わりに-exec {} +を使用して、スクリプトの実行を高速化することができます:これはむしろ、すべての結果のために別のものを産卵よりも、sedの同じインスタンスに複数の結果を渡し

find . -name '*.toml' -type f -exec sed -i '3i value = 1' {} + 

1
find . -type f -name '*.toml' -exec sed -i '3i value = 1' {} \; 
+0

それは簡単だったか分からなかった! – PeterGenius

関連する問題