プログラミング

Bashコマンドawkでdfを見やすくする

Linuxコマンドライン言語のBashにおける、Bashコマンドawkでdfを見やすくする方法について紹介します。

awkって面白い。

df
    df: /mnt/_share: 通信端点が接続されていません
    df: /mnt/_share: 通信端点が接続されていません
    df: /mnt/_share: 通信端点が接続されていません
    Filesystem      1K-blocks       Used  Available Use% Mounted on
    rootfs          975731888  913886036   61845852  94% /
    root            975731888  913886036   61845852  94% /root
    home            975731888  913886036   61845852  94% /home
    data            975731888  913886036   61845852  94% /data
    cache           975731888  913886036   61845852  94% /cache
    mnt             975731888  913886036   61845852  94% /mnt
    none            975731888  913886036   61845852  94% /dev
    none            975731888  913886036   61845852  94% /run
    none            975731888  913886036   61845852  94% /run/lock
    none            975731888  913886036   61845852  94% /run/shm
    none            975731888  913886036   61845852  94% /run/user
    C:              975731888  913886036   61845852  94% /mnt/c
    E:             2930133932  381876300 2548257632  14% /mnt/e
    G:             2930133932 1545875952 1384257980  53% /mnt/g
    H:             2930134012 2625853000  304281012  90% /mnt/h

color df 2>/dev/null | awk '{if ($1 ~ /\w{1}:/){print $1,$5,$6}}'
    C: 94% /mnt/c
    E: 14% /mnt/e
    G: 53% /mnt/g
    H: 90% /mnt/h

バイト数のところをGBにpythonに渡して割り算とかしてみたいなことをしたかったけどコマンド実行がちょっと複雑でわからなかった。
awk – Assigning system command’s output to variable – Stack Overflow

(追記) できました。記事あげました。

awkについてのドキュメント的な参考文献とか。

AWK Cheat Sheet | ShortcutFoo
AWK cheatsheet

(魔改良)

color df 2>/dev/null | awk '{if ($1 ~ /\w{1}:/){"python -c \"print("$4"/1000/1000)\" | perl -pe 'chomp'" |& getline $11 ; print $1,$11"(GB)",$5,$6}}'
    C: 61(GB) 94% /mnt/c
    E: 2548(GB) 14% /mnt/e
    G: 1384(GB) 53% /mnt/g
    H: 304(GB) 90% /mnt/h


(2021年追記: これって普通に”df -h”でいいですよね?当時の僕が何をしたかったのかよくわからないです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です