xargsとawkを使用して利用可能/合計ディスクを印刷します。

xargsとawkを使用して利用可能/合計ディスクを印刷します。

サーバーを確認するためにスクリプトを見つけ、これを見つけました。

df -h | xargs | awk '{print "Free/total disk: " $11 " / " $9}'
free -m | xargs | awk '{print "Free/total memory: " $17 " / " $8 " MB"}'

値が$11、$9、$17、$8である理由とxargsを使用する理由を本当に理解していません。誰かがこれを明確にすることができますか?ちなみに、これは私の端末からのdh -hコマンドの出力です。

[root@ip-10-0-7-125 07-04-2016]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  3.4G   17G  17% /

ベストアンサー1

引数なしxargsで入力を単語に分割し、単一のスペースで区切って出力します。

echo -e a  b\\nc | xargs

与えられた

a b c

したがって、dfパイプラインの出力はxargs単一行に縮小され、そこで再分割されawkて生成されます。

トークンは$n次に置き換えられます。N最初の単語free -m出力例(およびの出力)で単語数を数えると、その項目が表示されます。

xargsawkこれは、入力の2行目のみを表示するように指示することで回避できます。また、長いデバイス名が分割されないようにするには、-Pここでこのオプションを使用する必要があります。df

おすすめ記事