【发布时间】:2021-03-24 22:07:24
【问题描述】:
使用 xargs (GNU findutils) 4.7.0 运行以下命令时
xargs -n1 <<<"-d -e -n -o"
我得到这个输出
-d
-o
为什么 -e 和 -n 没有出现在输出中?
【问题讨论】:
-
因为
echo -e和echo -n
使用 xargs (GNU findutils) 4.7.0 运行以下命令时
xargs -n1 <<<"-d -e -n -o"
我得到这个输出
-d
-o
为什么 -e 和 -n 没有出现在输出中?
【问题讨论】:
echo -e 和echo -n
来自man xargs:
[...] 并执行命令(默认为 /bin/echo)[...]
所以它运行:
echo -d
echo -e
echo -n
echo -o
但是来自man echo:
-n do not output the trailing newline -e enable interpretation of backslash escapes
echo -n 不输出任何内容,echo -e 输出您在输出中看到的一个空换行符。
【讨论】:
xargs printf "%s\n" <<<"-d -e -n -o"- 这就是我最终要做的。
to get the desired output 我不明白,要获得相同的输出,您可以tr ' ' '\n' 或printf "%s\n" -d -e -n -o 或sed 's/ /\n/g' <<<"-d -e -n -o" 或真的只是echo $'-d\n-e\n-n\n-o'。 IE。我在这里看到xargs 没有任何价值。