省略 ls -hal 中的一列

省略 ls -hal 中的一列

如何省略group输出中的列ls -hal

我正在使用它ls -hal|cut -f4 --complement -d ' ',它在大多数情况下都可以找到,但是如果我运行它,/ 我会得到混乱的输出:

drwxr-xr-x  25 root 4.0K Dec 21 06:08 .
drwxr-xr-x  25 root 4.0K Dec 21 06:08 ..
drwxr-xr-x   root root 4.0K Jan 12 06:17 bin
drwxr-xr-x   root root 4.0K Jan 16 10:36 boot
drwxrwxr-x   root root 4.0K May  1  2018 cdrom
-rw-------   root root  56M May  1  2018 core
drwxr-xr-x  20 root 4.7K Jan  6 17:54 dev
drwxr-xr-x   root root 4.0K Oct  9 15:14 .dotnet
drwxr-xr-x 154 root  12K Jan 16 10:36 etc
drwxr-xr-x   root root 4.0K Nov 24 19:39 home

(我不明白为什么会发生这种情况,ls -hal仅给出

drwxr-xr-x  25 root root 4.0K Dec 21 06:08 .
drwxr-xr-x  25 root root 4.0K Dec 21 06:08 ..
drwxr-xr-x   2 root root 4.0K Jan 12 06:17 bin
drwxr-xr-x   3 root root 4.0K Jan 16 10:36 boot
drwxrwxr-x   2 root root 4.0K May  1  2018 cdrom
-rw-------   1 root root  56M May  1  2018 core
drwxr-xr-x  20 root root 4.7K Jan  6 17:54 dev
drwxr-xr-x 154 root root  12K Jan 16 10:36 etc

我也尝试过,awk '{print $1,$2,$3,$5,$6,$7,$8,$9}'但这总是弄乱对齐:

drwxr-xr-x 25 root 4.0K Dec 21 06:08 .
drwxr-xr-x 25 root 4.0K Dec 21 06:08 ..
drwxr-xr-x 2 root 4.0K Jan 12 06:17 bin
drwxr-xr-x 3 root 4.0K Jan 16 10:36 boot
drwxrwxr-x 2 root 4.0K May 1 2018 cdrom
-rw------- 1 root 56M May 1 2018 core
drwxr-xr-x 20 root 4.7K Jan 6 17:54 dev

答案1

有一些特定的ls选项可以隐藏组列。从LS(1):

-G,--no-group

在长列表中,不要打印组名称

-o

喜欢-l,但不列出群组信息

所以你可以使用ls -hao, 或ls -halG

答案2

在你的情况下,你的问题是结果中有多个单个空格 ls -alh /。这意味着字段 4 是不同的。

您可以做的是将空间聚合为一个:

ls -alh / | sed 's/\s\s*/ /g' | cut -f4 -d' ' --complement

但请注意,它还会删除文件名中任何潜在的双空格。

您还可以从这个答案中了解更多信息这里:

友好提醒查看您的命令选项。在本例中,只需使用 JigglyNaga 给出的命令即可轻松实现结果。

相关内容