为什么要使用不带参数的 xargs ?

为什么要使用不带参数的 xargs ?

我正在调试一个复杂的 shell 脚本,下面是代码:

echo $data | xargs -n1 | sort -u | sed 's/.*/%&%/' | xargs | sed 's/ /,/g;s/%/"/g'` 

这里没有任何命令的 xargs 有什么用处?

答案1

xargs如果没有命令,则使用其默认命令echo.这可用于执行xargs输入的基本文本处理。

这里首先使用它每行输出一个单词,然后合并行:

xargs -n1

获取输入,将其分割成单词,并每行输出一个单词;

sort -u

对行进行排序;

sed 's/.*/%&%/'

用符号包裹每一行%

xargs

将所有内容放回一行,并用空格分隔;最后

sed 's/ /,/g;s/%/"/g'

用逗号替换所有空格,%用双引号替换所有符号。

因此,这一系列命令的最终目的是将空格分隔的输入转换为排序的逗号分隔的带引号的输出。

相关内容