Lsを使用してディレクトリを一覧表示し、所有者とグループで並べ替えるにはどうすればよいですか?
これを試して:
ls -l | awk '{print $3, $4, $8}' | sort
ファイル名にスペースが含まれていない場合は、ユーザー名、グループ名、およびファイル名が出力されます。または、次のように入力することもできます。
ls -l | awk '{print $3, $4, $0}' | sort
これにより、ユーザー名、グループ名、および完全なls -l
出力が最初にユーザー名、次にグループ名、次にls -l
が最初に出力されたものの順にソートされて出力されます。
ディストリビューションによっては、実際の列番号が異なる場合があることに注意してください。私はSUSEとcoreutilsバージョン5.2.1で私のものを試しました。
おそらくより優れた、より手の込んだ解決策がありますが、これは最も簡単な解決策であり、ほとんどの場合機能します。
Petersohnが言ったように、次のようなものがあります。
ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
$8
とcolumn -t
を追加しましたまたはさらに良い:
ls -l | sort -k 3
-所有者でソートし、デフォルトで次のフィールド(グループ)以降をソートしますls -l | sort -k 4,4 -k 3
-グループでソートしてから、所有者でソートしますls -l | sort -k 3,3 -k 8
-所有者、次にファイル名でソートします注:コンマはターミネータフィールドであるため、3,3
が開始してフィールド3で終了3,5
はフィールド3から5にソートします。