如何仅列出以逗号分隔的目录中的文件

如何仅列出以逗号分隔的目录中的文件

所以没有目录,也没有隐藏文件。只是文件。仅列出文件可以使用如下行完成。

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”(一)的字体的查看者请注意:传递给的第一个选项ls1数字,而不是小写l。)

正如 Jim L 在评论中指出的那样,上述命令仅适用于不包含空格的文件名。以下命令可以解决这个问题:

 ls -1p | grep -v / | sed 's/$/, /g' | xargs echo | sed 's/,$//g' 

echo在将列表传递给;之前,这会用逗号替换行结尾。最后一部分删除了列表末尾的命令。

相关内容