Bash
按使用者排序 ls 輸出
在 Linux 上,有沒有辦法按使用者對輸出進行****排序
ls
?我試圖實現的是這樣的:user_a file1 user_a file2 user_b another_file user_c this_file user_c that_file user_d file3 _ _ _ _ _ _
我知道像這樣的列表也會包含文件大小、權限等——我主要關心的是使用者的排序。會很方便的,不是嗎
到目前為止,我發現
ls -l | sort -k 3
按第三列排序,其中[如果使用ls -l
]包含文件所有者[因此sort -k 4
按組排序]。但是如果文件所有者不在第三行怎麼辦?是否有另一種方法可以實現這一點,與列數無關?
更新:我忘了提到我在 BASH 工作並嘗試從這裡開始堅持一段時間,這樣事情就不會變得更複雜。
從單個
ls -l
輸出中確定所有者名稱在哪一列,而不知道哪一列是不可能的。您可以嘗試將每列中的條目與passwd
文件匹配,但不能保證您不會匹配組列或文件名列,它們都只能包含您在/etc/passwd
.如果你想使用
ls
,你可以執行程序兩次,一次 asls -l
和一次 asls -g
。後者刪除所有者,因此通過根據其他資訊匹配行,您將能夠在沒有指定的情況下確定所有者名稱。然而,這不是我樂於在 bash shell 腳本中進行的練習。