1. ホーム
  2. bash

findコマンドのexecパラメータでパイプを使用するには?

2023-09-15 12:05:48

質問

2つの異なる実行ファイルを使用して、ディレクトリ内のファイルの束を処理する find コマンドを作成しようとしています。 残念ながら -exec はパイプを使うことを許さず、さらに \| という文字が最初に解釈されるためです。

以下は私がやろうとしている具体的なことです(pipeがfindコマンドを終了させるのでうまくいきません)。

find /path/to/jpgs -type f -exec jhead -v {} | grep 123 \; -print

どのように解決するのですか?

これを試してみてください。

find /path/to/jpgs -type f -exec sh -c 'jhead -v {} | grep 123' \; -print

あるいは、exec文をshスクリプトの中に埋め込んでやってみるのもいいかもしれません。

find -exec some_script {} \;