所以没有目录,也没有隐藏文件。只是文件。仅列出文件可以使用如下行完成。
ls -p | grep -v /
现在我希望这一行的结果用逗号分隔。
答案1
您可以用于tr
该工作。
ls -p | grep -v / | tr '\n' ','
答案2
您可以使用 GNUls -m
命令。它将打印以逗号分隔的所有文件和目录。
答案3
Thomas 提出的解决方案有效,但它在最后一项添加了一个逗号(这可能不是您想要的)并删除了逗号后面的空格。以下替代方案保留逗号后面的空格,并且不在最后一项后面添加逗号:
ls -1p | grep -v / | xargs echo | sed 's/ /, /g'
当然,如果你想去掉项目之间的空格,只需调整 sed 表达式即可:
ls -1p | grep -v / | xargs echo | sed 's/ /,/g'
(使用小写“l”和数字“1”(一)的字体的查看者请注意:传递给的第一个选项ls
是1
数字,而不是小写l
。)
正如 Jim L 在评论中指出的那样,上述命令仅适用于不包含空格的文件名。以下命令可以解决这个问题:
ls -1p | grep -v / | sed 's/$/, /g' | xargs echo | sed 's/,$//g'
echo
在将列表传递给;之前,这会用逗号替换行结尾。最后一部分删除了列表末尾的命令。