Ls

在 ls -hal 中省略一列

  • January 16, 2019

如何省略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

ls隱藏組列的特定選項。從ls(1)

-G,--no-group

在長列表中,不要列印組名

-o

喜歡-l,但不列出組資訊

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

*在您的情況下,您的問題是ls -alh /*的結果中有多個單個空格 。這意味著欄位 4 是一個不同的欄位。

您可以做的是將空間聚合為一個:

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

但請注意,它還會從文件名中刪除任何潛在的雙空格。

您還可以從這裡的答案中了解更多資訊

友情提醒您查看您的命令選項。在這種情況下,可以使用 JigglyNaga 給出的命令簡單地實現結果。

引用自:https://unix.stackexchange.com/questions/494788