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

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

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

$ foo
file1.a
file2.b
file3.a

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

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

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

答案1

您可以使用grep来获取foo该端的所有文件.a

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

相关内容