文字列全体の代わりに1つの単語のみ

文字列全体の代わりに1つの単語のみ

/パーティションのディスク容量を監視するための簡単なスクリプトを作成していますが、出力から数字を把握したいと思います。

tabbi@tabbi:~/scripts$ df -h / 
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       234G  7,6G  214G   4% /

「使用済み」列から%を削除したいとします。 (またはすべての場所から削除します。)これを使用すると、df -h / | grep -v '%'何も印刷されません。

出力から%記号を除外する方法は?

答え1

grep -vすべて削除ワイヤー与えられた文字列と一致するので、あなたの場合、「%」を含む行は完全に削除されます。

文字のみを削除するには、次のようにします。tr:

df -h / | tr -d %

答え2

awkデフォルトではawk、次のコマンドを使用して "%"なしで/ディレクトリの使用法を取得できます。

  • dfヘッダーを記述する出力の最後の行を選択します - END;
  • 削除"%";
  • 出力フィールド(印刷コスト5ドル)。

    df -h / | awk '  END { gsub("%",""); print $5 } '
    

実行してください:

$ df -h / | awk '  END { gsub("%",""); print $5 } '
4

またはすべての図を得なさい:

$ df -h / | awk '  END { gsub("%",""); gsub("G",""); print $2" "$3" "$4" "$5 } '
234 7,6 214 4

関連情報