ユーザー別にls出力を並べ替える

ユーザー別にls出力を並べ替える

Linuxでは方法がありますか?lsユーザー別の出力ソート?私が達成しようとしているものは次のとおりです。

ユーザー_   ファイル1
ユーザー_   ファイル2
ユーザー_第二
another_fileuser_  
this_file_user_     that_ファイル
ユーザー_D   ファイル3

私はそのようなリストにファイルサイズ、権限などが含まれていることを知っています。 - 私の主な関心事は、ユーザーごとに並べ替えることです。それでは便利ではないでしょうか?

これまで、[使用されている場合]ファイルの所有者を含む[したがってグループ別にソート]、ls -l | sort -k 33番目の列に基づいてソートすることがわかりました。ls -lsort -k 4

しかし、ファイル所有者が3行目にない場合はどうなりますか?別の方法がありますか?列数に関係なくこれを達成します。


修正する:言うのを忘れました。私はBASHで働いています。そして、状況がより複雑にならないように、これからしばらくこれに固執するように努めてください。

ベストアンサー1

どの列がどちらであるかを知らずに、単一の出力で所有者名がどの列にあるかを確認するls -lことはできません。各列の項目をファイルと一致させることができますが、passwdグループ列またはファイル名列が一致しないという保証はありません。両方で見つかった名前のみを含めることができます/etc/passwd

を使用するには、lsプログラムを2回実行するだけです。一度はasで、ls -l一度はasで実行できますls -g。後者は所有者を削除するので、他の情報に基づいて行を一致させると、所有者名を指定せずに所有者名を解決できます。しかし、これはbashシェルスクリプトで実行できる練習ではありません。

おすすめ記事