首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用-d‘n’时,xargs忽略空行

使用-d‘n’时,xargs忽略空行
EN

Unix & Linux用户
提问于 2022-09-04 07:07:08
回答 1查看 745关注 0票数 2

我有一个可能有空行的文件输入,我希望跳过任何空行。

我试图找到一种不需要使用grep / tr并将输出传递给xargs的解决方案。

我使用以下xarg选项

-r在没有参数的情况下,我不希望运行命令。-d '\n‘新行是分隔符。

命令使用echo:

代码语言:javascript
运行
复制
echo "" | xargs -r -d'\n' -I {}  echo "test '{}'"

产出:

代码语言:javascript
运行
复制
test ''

命令,使用由空行组成的文件:

代码语言:javascript
运行
复制
xargs -a /tmp/test.txt -r -d'\n' -I {}  echo "test '{}'"

产出:

代码语言:javascript
运行
复制
test ''
test ''
test ''

如前所述,我可以使用grep,但我想知道是否可以使用xargs。

grep示例(工作):

代码语言:javascript
运行
复制
grep -v -e '^ /tmp/test.txt | xargs -r -d'\n' -I {}  echo "test '{}'"
EN

回答 1

Unix & Linux用户

发布于 2022-09-04 08:18:05

回答我自己的问题以确认您必须使用grep (或其他工具)并将管道输出到xargs以过滤空输入。

解决方案:

代码语言:javascript
运行
复制
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中获得的其他注意事项是与后者优先的冲突参数。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/716057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档