Ls
在 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
有
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 給出的命令簡單地實現結果。