コマンドラインに正確に入力すると、次のように動作します。
find /<some_path>/{epson,epson_laser,epson_inkjet} -iname "*.ppd"
-exec grep "\*ModelName\:" {} \; | sed 's/.*\"\(.*\)\"/\1/'
ただし、bash スクリプトから以下を呼び出そうとすると、find: missing argument to -exec'
.
次のことも試しました(多くのバリエーションで):
eval find "$1" -iname "*.ppd" -exec 'bash -c grep "\*ModelName\:" "$1" | sed "s/.*\"\(.*\)\"/\1/" \;
find-exec-echo-missing-argument-to-execで述べたように。ターミナルだけでなく、bash スクリプトでも最初のコードを実行するにはどうすればよいですか?
PS:eval
文字列"/<some_path>/{epson,epson_laser,epson_inkjet}"
を複数のパスに展開するためだけに使用しました。これを行うためのより良い解決策を知っている人はいますか?