如何将ls -1的结果加入到一行中,并用我想要的任何内容将其分隔?
当前回答
如果你喜欢Python3,你可以这样做(但是请解释为什么你会这样做?):
ls -1 | python -c "import sys; print(','.join(sys.stdin.read().splitlines()))"
其他回答
一般不建议解析ls,所以另一种更好的方法是使用find,例如:
find . -type f -print0 | tr '\0' ','
或者使用find和粘贴:
find . -type f | paste -d, -s
对于一般的多行连接(与文件系统无关),请检查:Unix命令行上简明而可移植的“join”。
就bash
mystring=$(printf "%s|" *)
echo ${mystring%|}
上面的Python回答很有趣,但自己的语言甚至可以使输出更好:
python -c "import sys;打印(sys.stdin.read () .splitlines())”
不要白费力气。
ls -m
它就是这么做的。
如果你的xargs版本支持-d标志,那么这应该可以工作
ls | xargs -d, -L 1 echo
-d是分隔符标志
如果没有-d,那么可以尝试以下操作
ls | xargs -I {} echo {}, | xargs echo
第一个xargs允许您指定分隔符,在本例中为逗号。