25

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.txtthenを入力した後の結果は次のとおりです。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

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

4

2 に答える 2

45

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

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

-k2列番号2です

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

于 2012-11-19T10:37:04.470 に答える
1

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
于 2012-11-19T10:39:15.863 に答える