web-dev-qa-db-ja.com

duコマンドの結果をアルファベット順に一覧表示

duコマンドの結果をアルファベット順に一覧表示するにはどうすればよいですか?

findコマンドを使用してアルファベット順に一覧表示できることはわかっていますが、ディレクトリサイズがない場合は、両方のコマンドに-maxdepthオプションを使用して、一覧が1つのサブディレクトリのみに表示されるようにします。

イタリック体の質問は次のとおりです。

ディレクトリサイズアナライザを実装するシェルスクリプトを記述します。スクリプトでは、一般的なLinuxコマンドを使用できます。スクリプトは、指定された引数または現在のディレクトリの各直接サブディレクトリが占めるディスクストレージを一覧表示する必要があります(引数がない場合)。また、ディスク使用量が最も多いサブディレクトリの名前とそのストレージサイズをリストします。複数のサブディレクトリのディスク使用量が同じである場合は、それらのサブディレクトリのいずれかをリストします。意味のある簡単な説明を含めます。コメント。このスクリプトに適用できるbashコマンドのリストには、cat、cut、du、echo、exit、for、head、if、ls、rm、sort、tail、wcが含まれますが、これらに限定されません。bash変数も使用できます。中間結果を保持するための一時ファイルとして。実行の最後にすべての一時ファイルを削除します。

コマンドラインでdu $dir -hk --max-depth=2 | sort -o temp1.txt、次にcat temp1.txtを入力した後の結果は次のとおりです。

12      ./IT_PLAN/Inter_Disciplinary
28      ./IT_PLAN
3       ./IT_PLAN/Core_Courses
3       ./IT_PLAN/Pre_reqs
81      .
9       ./IT_PLAN/IT_Electives

次のようになります。

28      ./IT_PLAN
3       ./IT_PLAN/Core_Courses
12      ./IT_PLAN/Inter_Disciplinary
9       ./IT_PLAN/IT_Electives
The subdirectory with the maximum disk space use:
28      ./IT_PLAN

繰り返しになりますが、結果をアルファベット順に並べ替えるのに問題があります。

18

これを試してみてください:

du $dir -hk --max-depth=2 | sort -k2

-k2は列番号2です

http://www.manpagez.com/man/1/sort/ を参照してください

33
Gilles Quenot

du $dir -hk --max-depth=2 |awk '{print $2"\t"$1}'|sort -d -k1 -o temp1.txtそして./パスを削除したい場合

 du $dir -hk --max-depth=2 |awk '{print $2"\t"$1}'|sed -e 's/\.\///g'|sort -d -k1 -o temp1.txt
1