我正在调试一个复杂的 shell 脚本,下面是代码:
echo $data | xargs -n1 | sort -u | sed 's/.*/%&%/' | xargs | sed 's/ /,/g;s/%/"/g'`
Run Code Online (Sandbox Code Playgroud)
这里没有任何命令的 xargs 有什么用处?
xargs
如果没有命令,则使用其默认命令echo
. 这可用于执行xargs
\xe2\x80\x99s 输入的基本文本处理。
这里it\xe2\x80\x99s首先用于每行输出一个单词,然后合并行:
\nxargs -n1\n
Run Code Online (Sandbox Code Playgroud)\n获取输入,将其分割成单词,并每行输出一个单词;
\nsort -u\n
Run Code Online (Sandbox Code Playgroud)\n对行进行排序;
\nsed 's/.*/%&%/'\n
Run Code Online (Sandbox Code Playgroud)\n用符号包裹每一行%
;
xargs\n
Run Code Online (Sandbox Code Playgroud)\n将所有内容放回一行,并用空格分隔;最后
\nsed 's/ /,/g;s/%/"/g'\n
Run Code Online (Sandbox Code Playgroud)\n用逗号替换所有空格,%
用双引号替换所有符号。
因此,这一系列命令的最终目的是将空格分隔的输入转换为排序的逗号分隔的带引号的输出。
\n