省略 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 給出的命令即可輕鬆實現結果。

相關內容