複数のコマンドで find -exec を実行する 質問する

複数のコマンドで find -exec を実行する 質問する

複数のコマンドで find -exec を使用しようとしていますが、成功しません。次のようなコマンドが可能かどうか知っている人はいますか?

find *.txt -exec echo "$(tail -1 '{}'),$(ls '{}')" \;

基本的に、現在のディレクトリにある各 txt ファイルの最後の行を印刷し、行末にコンマとファイル名を印刷しようとしています。

ベストアンサー1

findコマンドの複数の-exec部分を受け入れます。例:

find . -name "*.txt" -exec echo {} \; -exec grep banana {} \;

この場合、@Caleb が述べたように、2 番目のコマンドは最初のコマンドが正常に返された場合にのみ実行されることに注意してください。成功か失敗かに関係なく両方のコマンドを実行したい場合は、次の構文を使用できます。

find . -name "*.txt" \( -exec echo {} \; -o -exec true \; \) -exec grep banana {} \;

おすすめ記事