如何省略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
答案2
在你的情况下,你的问题是结果中有多个单个空格 ls -alh /。这意味着字段 4 是不同的。
您可以做的是将空间聚合为一个:
ls -alh / | sed 's/\s\s*/ /g' | cut -f4 -d' ' --complement
但请注意,它还会删除文件名中任何潜在的双空格。
您还可以从这个答案中了解更多信息这里:
友好提醒查看您的命令选项。在本例中,只需使用 JigglyNaga 给出的命令即可轻松实现结果。