web-dev-qa-db-fra.com

Supprimer le dernier caractère de la chaîne capturée avec awk

J'ai besoin de supprimer le dernier caractère d'une chaîne dans cette commande:

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

Le résultat est 5.20%, Je dois supprimer le % à la fin, donnant 5.20. Est-il possible de le faire dans la même commande?

24
Steph

Oui, avec substr() vous pouvez faire un découpage de chaîne:

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

length($2) nous donnera la longueur du deuxième champ, en déduisant 1 de celui-ci pour supprimer le dernier caractère.

Exemple:

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