タイトルと同じくらい簡単です。私はネストされたファイルを持っていて、もし彼らが.toml
で終わるなら、それらのコマンドを実行したい。特定の拡張子を持つすべてのファイルに対してコマンドを実行します。
すべてのファイルの上に
find . -type f -exec sed -i '3i value = 1' {} \;
実行して試みるが、.toml
で終わるファイルだけにそれを行う方法はありますか?
タイトルと同じくらい簡単です。私はネストされたファイルを持っていて、もし彼らが.toml
で終わるなら、それらのコマンドを実行したい。特定の拡張子を持つすべてのファイルに対してコマンドを実行します。
すべてのファイルの上に
find . -type f -exec sed -i '3i value = 1' {} \;
実行して試みるが、.toml
で終わるファイルだけにそれを行う方法はありますか?
確かにあります。 -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' {} +
。
なぜdownvoteですか? – PeterGenius