~/blog/improve-output-format-of-df-command-using-awk-in-bash
Published on

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

1601文字3分で読めます–––
閲覧数
Authors
  • avatar
    Name
    Shou Arisaka nyapp.buzz/shou
    short bio
    Z世代の情報技術者。Next.jsで自作SNSを個人開発中。

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"でいいですよね?当時の僕が何をしたかったのかよくわからないです。

avatar

Shou Arisaka

情報技術者 / Z世代プログラマー / SaaSアプリやSNSを開発
今すぐ話そう!

15歳でWordPressサイトを立ち上げ、ウェブ領域に足を踏み入れる。翌年にはRuby on Railsを用いたマイクロサービス開発に着手し、現在はデジタル庁を支えたNext.jsによるHP作成やSaaS開発のプロジェクトに携わりながら、React.js・Node.js・TypeScriptによるモダンなウェブアプリの個人開発を趣味でも行う。
フロントエンドからバックエンドまで一貫したアジャイルなフルスタック開発を得意とし、ウェブマーケティングや広告デザインも必要に応じて担当、広告運用・SEO対策・データ分析まで行う低コストかつ高品質な顧客体験の提供が好評。
国内外から200万人を超える人々に支えられ、9周年を迎えるITブログ「yuipro」の開発者、デザイナーでありライター。現在ベータ段階の自作SNS「nyapp.buzz」を日本一の国産SNSとするべく奮闘中。

Created with Fabric.js 5.2.4 何かご質問がありますか?