web-dev-qa-db-ja.com

awkでキャプチャされた文字列から最後の文字を削除します

このコマンドの文字列から最後の文字を削除する必要があります。

Sudo docker stats --no-stream 39858jf8 | awk '{if (NR!=1) {print $2}}'

結果は5.20%です。最後に%を削除して5.20を与える必要があります。同じコマンドでこれを行うことは可能ですか?

24
Steph

はい、substr()を使用すると、文字列のスライスを実行できます。

_... | awk '{if (NR!=1) {print substr($2, 1, length($2)-1)}}'
_

length($2)は、2番目のフィールドの長さを取得し、1を差し引いて最後の文字を取り除きます。

例:

_$ echo spamegg foobar | awk '{print substr($2, 1, length($2)-1)}'
fooba
_
38
heemayl