パイプを通るラインをどのようにフィルタリングしますか?

パイプを通るラインをどのようにフィルタリングしますか?

fooファイル名のリストを出力するコマンドがあります。

$ foo
file1.a
file2.b
file3.a

bar.aファイル名を引数として受け入れ、いくつかの処理を実行するコマンドもあります。

$ bar file1.a file3.a
Great success!
$ bar file2.b
FAILURE

このようなパイプラインを使用して、2つを組み合わせたいだけで始まらないfoo | xargs barすべての項目をフィルタリングする必要があります.a。どうすればいいですか?理想的にはfoo | filter-lines ".a" | xargs bar、パイプラインの2つのコマンドの間に貼り付けることができる簡単なものが必要です。

答え1

を使用すると、その側のすべてのファイルをインポートgrepできます。foo.a

foo | grep "\.a$" | xargs -d'\n' -r bar

関連情報