- ベストアンサー
[HP-UX 11.23] du コマンドの出力結果をソート
よろしくお願いします。 QNo.4011758「HP-UX 11.23 におけるディスク使用率確認方法」 でアドバイスいただき、duコマンドの存在を知りました。 manやWebサイトで使い方を確認中です。 <質問> duコマンドの出力結果を使用量でソートする方法はありますでしょうか? どうぞよろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
パイプでsortに投げる du -ks * | sort -k 2 duの出力フィールドとsortのオプションをきちんと覚えていないので後は調べてください
その他の回答 (4)
#4さんのスクリプトですが FreeBSDのshの実態はashで変数の扱いが違うはずなんで HP-UXのPOSIX-shじゃ動かないかもしれませんね。 (私も詳しくないので正確な話じゃないですが)
お礼
参考意見ありがとうございます。 何度もご支援くださり助かりました。
- iriyak
- ベストアンサー率48% (40/82)
エラーメッセージを添付してくれれば原因の特定のサポートができるかもしれません。(全角文字は半角文字に変換済み、ですよね) (代替案) フォーマットエラーの可能性を排除するために 3 行にまとめておきました。お試しください。 #!/bin/sh echo " kbytes blocks file" du -s $* | awk '{ vol[$2] = $1 } END { for(dir in vol) { printf("%10d (%7d) %s\n", int(vol[dir]), vol[dir], dir); } } ' | sort -rn (出力例) FreeBSD 5.4-RELEASE-p4 での実行例です。(上記を du+ ファイルにまとめました) zebra[Sun]$ ./tmp/du+ * kbytes blocks file 133710 ( 133710) tmp 105280 ( 105280) public_html 85856 ( 85856) src 69020 ( 69020) bkup 27196 ( 27196) share 17606 ( 17606) lib 12200 ( 12200) data 11988 ( 11988) log 2422 ( 2422) bin 1226 ( 1226) site 1166 ( 1166) info 1032 ( 1032) doc 506 ( 506) man
補足
ご回答ありがとうございます。 何度もすみません。 エラーとなり、やはり動きませんでした。 しかし、他でいただいたご回答により目的を達成しましたので、 この件はここまでとしたいと思います。 また何かありましたらよろしくお願いします。
- iriyak
- ベストアンサー率48% (40/82)
こんにちは。 昔のバージョンでの動作実績しかありませんが、ご参考になさってください。(表示上、半角スペース2個を全角スペースに置き換えました。コピー&ペーストする際にご注意ください) #!/bin/sh echo " kbytes blocks file" du -s $* | awk ' { vol[$2] = $1 } END { for(dir in vol) { printf("%10d (%7d) %s\n", int(vol[dir]), vol[dir], dir); } } ' | sort -rn
補足
iriyak さん、ご回答ありがとうございます。 試してみたいのですが、実行方法を教えてください。 そのまま実行したら8行目以降でエラーとなりました。
- koko_u_
- ベストアンサー率18% (459/2509)
>duコマンドの出力結果を使用量でソートする方法はありますでしょうか? そのまま sort コマンドに通せばいいと思いますけど。 du -d 1 | sort -n -k 1 な風で。
お礼
koko_u_ さん、アドバイスありがとうございます。 参考にさせていただきます。
お礼
super-dog さん、前の質問に引き続き アドバイスありがとうございます。 参考にさせていただきます。