スクリプトを実行してから一致するものごとに実行したいのですが、find
各.txtファイルの出力の上に一致するファイルの名前を印刷したいと思いますexec
。次の出力をどのように生成できますか?
$ find . -name 'something' -exec sh script.sh {} \;
./something_1
output from
script.sh something_1
./something_2
output from
script.sh something_2
現在はscript.sh
。私は試しましたが、-exec echo {} && sh script.sh {} \;
成功しませんでした。
-exec
xargs -print0
私は空白の問題が少なくなるorを使用するソリューションを好みます。
答え1
find
別のジョブを指定しない場合、デフォルトは一致するすべてのファイルを印刷することです。
これで-exec ...
置き換えられます-print
。
二つの作業を合わせるとの意味ですAND
。
したがって、次の2つを行います。
$ find . -name 'something' -print -exec sh script.sh {} \;
答え2
この試み:
$ find . -name 'something' -exec sh script.sh {} \; |
script.sh |
script.sh