如何使`ls -l`输出以逗号分隔?

时间:2018-12-21 04:47:49

标签: shell unix

我有一个场景,在UNIX中,当您列出目录中的所有文件时,输出用空格分隔。如何获取逗号分隔的输出呢?

...所以,而不是ls -l返回(如目前一样)

drwxr--rw- 1 shravan.usersgroup 290 DEC 21 10:00 sample.txt
drwxr--rw- 1 shravan.usersgroup 150 DEC 21 10:00 demo.txt

...如何获得以下信息?

drwxr--rw- ,1, shravan.usersgroup ,290, DEC 21 ,10:00 ,sample.txt
drwxr--rw- ,1, shravan.usersgroup ,150 ,DEC 21 ,10:00 ,demo.txt

2 个答案:

答案 0 :(得分:2)

在具有GNU find的系统上,以下代码生成的字段之间只有逗号(没有空格)的输出:

find . -maxdepth 1 -printf '%M,%n,%u.%g,%s,%Ax,%AX,%p\n'

还可以使用GNU stat生成文件及其元数据的逗号分隔描述:

stat -c '%A,%h,%U.%G,%s,%y,%n' *

请参见Why you shouldn't parse the output of lsHow can I get a file's permissions (and other metadata) without parsing ls -l output?

答案 1 :(得分:1)

编辑:阅读以下评论后。

尝试下面的事情,

ls --format=commas

它应该为您工作!

  

这将以逗号分隔打印文件名。

如果要获得文件许可权和其他参数,则需要稍微修改逻辑。

我希望这会有所帮助!