从使用 awk 捕获的字符串中删除最后一个字符

Ste*_*eph 38 awk string text-processing

我需要从这个命令的字符串中删除最后一个字符:

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

结果是5.20%,我需要%在最后删除,给5.20. 是否可以在同一命令中执行此操作?

hee*_*ayl 67

是的,substr()您可以进行字符串切片:

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

length($2) 将获得第二个字段的长度,从中减去 1 以去除最后一个字符。

例子:

$ echo spamegg foobar | awk '{print substr($2, 1, length($2)-1)}'
fooba
Run Code Online (Sandbox Code Playgroud)