繁体   English   中英

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

[英]How can I cause `ls -l` output to be comma-separated?

我有一个场景,在 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

在具有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' *

请参阅为什么不应该解析ls的输出 ,以及如何在不解析ls -l输出的情况下获得文件的权限(以及其他元数据)?

编辑:阅读以下评论后。

尝试下面的事情,

ls --format=commas

它应该为您工作!

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

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

我希望这有帮助!

这个命令也是一个技巧

ls -m

或者如果您之间不需要空格

ls -m | tr -d ' '

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM