如何过滤通过管道的线路?

Jac*_*ack 2 command-line text-processing

我有一个foo输出文件名列表的命令:

$ foo
file1.a
file2.b
file3.a
Run Code Online (Sandbox Code Playgroud)

以及bar接受.a文件名作为参数并进行一些处理的命令:

$ bar file1.a file3.a
Great success!
$ bar file2.b
FAILURE
Run Code Online (Sandbox Code Playgroud)

我想将两者与类似的管道结合起来foo | xargs bar,但我需要过滤掉所有不以.a. 我怎样才能做到这一点?理想情况下,我想要一些简单的东西,我可以将它放在管道中的两个命令之间,例如foo | filter-lines ".a" | xargs bar.

Pes*_*hke 7

您可以使用grep抓取中的所有文件foo与结束.a

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