如何将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语句中加入换行条件。它可以是特殊字符或任何分隔符。

sed -e :a -e '/$/N; s/\n/\\n/; ta' [filename]

解释:

-e -表示要执行的命令 :a -为标签 /$/N -定义当前和(N)下一行的匹配范围 s / \ n / \ \ n /;-将所有EOL替换为\n 助教;-如果匹配成功,则标记a

摘自我的博客。

设置IFS和使用“$*”的组合可以实现您想要的功能。我使用了一个subshell,所以我不会干扰这个shell的$IFS

(set -- *; IFS=,; echo "$*")

为了捕获输出,

output=$(set -- *; IFS=,; echo "$*")

我觉得这个很棒

ls -1 | awk 'ORS=","'

ORS是“输出记录分隔符”,所以现在你的行将用逗号连接。

不要白费力气。

ls -m

它就是这么做的。