使用linux中的$ sign访问每一行

Boo*_*jaa 0 unix linux bash pipe sh

每当我执行输出多行的linux命令时,我想对输出的每一行执行一些操作.我一般都这么做

command something | while read a
do
  some operation on $a;
done
Run Code Online (Sandbox Code Playgroud)

这很好用.但我的问题是,是否有一些我可以通过预定义的符号访问每一行(不知道如何调用它)///像$这样的东西?..或.. $!..或.. $ _

有可能吗?

cat to_be_removed.txt | rm -f $LINE
Run Code Online (Sandbox Code Playgroud)

在bash中有预定义的$ LINE ..或者前一个是最短的方式.即.

cat to_be_removed.txt | while read line; do rm -f $line; done;
Run Code Online (Sandbox Code Playgroud)

Car*_*rum 7

xargs 正是你要找的:

cat to_be_removed.txt | xargs rm -f
Run Code Online (Sandbox Code Playgroud)

但是,如果使用那个文件名,请注意文件名中的空格.查看xargs手册页以获取更多信息.

  • `xargs rm -f <to_be_removed.txt`并保存一个进程. (2认同)

Jon*_*ler 5

您可能正在寻找该xargs命令.

它需要控制参数,以及命令和可选的命令参数.然后它读取其标准输入,通常在白色空间分割,然后安排重复执行具有给定参数的命令,并从标准输入读取尽可能多的"文件名",以适应命令行.

  • @Jaypal,大多数系统都有最大命令行长度限制.`xargs`将做"正确的事情"并在必要时多次执行命令以解决该限制. (2认同)