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


当前回答

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

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

为了捕获输出,

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

其他回答

类似于第一个选项,但省略了后面的分隔符

ls -1 | paste -sd "," -

为了避免tr的换行符混淆,我们可以在ls中添加-b标志:

ls -1b | tr '\n' ';'

就bash

mystring=$(printf "%s|" *)
echo ${mystring%|}

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

ls  | xargs -d, -L 1 echo

-d是分隔符标志

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

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

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

我觉得这个很棒

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

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