CommentsTweetPocketシェルスクリプトやCUIでLinuxを操作していると、バイトで記述された容量を人が読みやすい状態に加工したい時がある。8.22から追加された『numfmt』コマンドだ。LTSでは標準で利用することが出来る。このコマンドの使い方については、もう見てもらった方が早いだろう。以下のようにechoで「4096000(4MB相当)」を出力し、それをnumfmtに渡す。--to=iec4.0Mこのように、人が見てわかりやすい容量に加工してくれるのだ。区切り文字や何列目の数字を加工するかについても指定できて、地味にかなり便利なコマンド。計算方法も1000で単位を上げるのか、1024で単位を上げるのか「–to=UNIT」で指定可能だ。以下、指定できるUNITについて、helpの内容を一部抜粋する。...基本的には、バイト数を計算させるならば「iec」「iec-i」を使えばいいだろう。Linksその他、こんな事もできる。/work/test7_2.shこのように、一度容量順でソートした後でも人の見やすい形式に直す事が出来る。上の例では空白区切り(デフォルト)の5列目を指定しているが、区切り文字も「–delimiter」オプションで指定可能だ。細かいオプションや使い方については、また後日まとめてみるかもだが、これは非常に便利なコマンドだ。※追記うまいこと魅力を伝えられていないようなので追記。上の例だと分かりにくいが、lsコマンド単体では配下のディレクトリを再帰的にフルパスで一覧取得出来ない。このため、「-S(サイズ順でソート)」では配下のディレクトリにある大きいファイルが見つけられない。そのためfindと組み合わせ、sortを用いてるのだが、lsで「-h」すると容量は数字として扱えなくなるので、正常にソートされない。なると、ソート後にファイル容量を変換する必要が出てくる。そんな時に使えるよ、という例だったのだが、ちょっとわかりにくかったかも知れない。blacknonインフラエンジニア(...のつもり)。仕事で使うならクライアントはWindowsよりはUNIXの方が好き。Commentコメントをキャンセルメールアドレスが公開されることはありません。