Shell命令循环遍历行?

Ben*_*ann 1 command-line

最近,我经常发现自己想要在另一个命令的输出上运行一些命令,该命令在几行上有输出.

例如,假设我有一个命令,它返回一个新行的每个文件路径,我想删除所有这些文件.

有没有可以帮我这么做的命令?

Gre*_*ill 6

这听起来像你在寻找xargs.从手册页:

xargs从标准输入读取参数,由空格分隔(可以使用双引号或单引号或反斜杠保护)或换行符,并使用任何初始参数执行命令(默认为/ bin/echo)一次或多次通过从标准输入读取的参数.

所以你可以这样做:

ls | grep -v '*.cpp' | xargs rm
Run Code Online (Sandbox Code Playgroud)

上面的命令将删除除*.cpp文件之外的当前目录中的所有内容.