ルートパーティションで利用可能なMBを表示するように設定されたUbuntu 12.04のbashスクリプトには、この変数があります。
AV_MB=$(df -m |awk NR==2 |awk '{print $4}')
これら2つのawk表現を1つにまとめるエレガントな方法はありますか?それとも、sed、grep、またはcutを使用するより短い方法ですか?
答え1
Awkは「pattern {action}」モデルで動作するため、これら2つの手順を1つの正しい手順にまとめることができます。
df -m | awk 'NR==2 {print $4}'
ただし、2番目のレコードが変更される可能性があるため(私のシステムでは、ルートレコードは3行目です)、これは脆弱であるため、次のようにルートファイルシステムレコードの最後のフィールドを一致させることができます。
df -m | awk '$NF == "/" {print $4}'
df
これにより、印刷するたびにパターンが一致します/
。
答え2
探しているパーティションがわかっているので、df
次のコマンドで指定してください。
df -m /
この--output
オプションを使用して、表示する列を定義することもできます。この場合、「使用可能」です。
df -m --output=avail /
からman df
:
--出力[=FIELD_LIST]
FIELD_LISTで定義された出力形式を使用するか、FIELD_LISTを省略した場合はすべてのフィールドを印刷します。
...
FIELD_LISTは、含める列のカンマ区切りリストです。有効なフィールド名は、「source」、「fstype」、「itotal」、「iused」、「iavail」、「ipcent」、「size」、「used」、「avail」、「pcent」、および「target」です。 )。情報ページ)。
ただし、この--output
オプションはGNUでのみ利用可能です。また、ヘッダーを印刷するので、tail -1
最後の行を取得するためにパイプを接続する必要があります。