如何将ls -1的结果加入到一行中,并用我想要的任何内容将其分隔?


当前回答

如果你的xargs版本支持-d标志,那么这应该可以工作

ls  | xargs -d, -L 1 echo

-d是分隔符标志

如果没有-d,那么可以尝试以下操作

ls | xargs -I {} echo {}, | xargs echo

第一个xargs允许您指定分隔符,在本例中为逗号。

其他回答

你可以使用chomp将多行合并成一行:

Perl -e 'while (<>) {if (/\$/) {chomp;}' bad0 >test

在if语句中加入换行条件。它可以是特殊字符或任何分隔符。

上面的Python回答很有趣,但自己的语言甚至可以使输出更好:

python -c "import sys;打印(sys.stdin.read () .splitlines())”

不要白费力气。

ls -m

它就是这么做的。

你可以使用:

ls -1 | perl -pe 's/\n$/some_delimiter/'

看起来答案已经存在了。

如果你愿意 a, b, c格式,使用ls -m (Tulains Córdova的答案)

或者如果你想要bc格式,使用ls | xargs (Chris J回答的简化版本)

或者如果你想要任何其他的分隔符,如|,使用ls |粘贴-sd'|' (Artem ' s answer的应用)