我有一个可能有空行的文件输入,我希望跳过任何空行。
我试图找到一种不需要使用grep / tr并将输出传递给xargs的解决方案。
我使用以下xarg选项
-r在没有参数的情况下,我不希望运行命令。-d '\n‘新行是分隔符。
命令使用echo:
echo "" | xargs -r -d'\n' -I {} echo "test '{}'"产出:
test ''命令,使用由空行组成的文件:
xargs -a /tmp/test.txt -r -d'\n' -I {} echo "test '{}'"产出:
test ''
test ''
test ''如前所述,我可以使用grep,但我想知道是否可以使用xargs。
grep示例(工作):
grep -v -e '^ /tmp/test.txt | xargs -r -d'\n' -I {} echo "test '{}'"发布于 2022-09-04 08:18:05
回答我自己的问题以确认您必须使用grep (或其他工具)并将管道输出到xargs以过滤空输入。
grep -v '^正如Stéphane Chazelas所阐明的,-r不会过滤空输入,但是如果没有输入,就会阻止运行。在xargs手册页-r中,通常,即使没有输入,也只运行一次命令。从进一步编辑、-0和-d中获得的其他注意事项是与后者优先的冲突参数。 /tmp/test.txt | xargs -r -d'\n' -I {} echo "test '{}'"正如Stéphane Chazelas所阐明的,-r不会过滤空输入,但是如果没有输入,就会阻止运行。
在xargs手册页-r中,
K13K24
通常,即使没有输入,也只运行一次命令。
从进一步编辑、-0和-d中获得的其他注意事项是与后者优先的冲突参数。
https://unix.stackexchange.com/questions/716057
复制相似问题