我有一个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