awk 从字段中提取数字

Mer*_*erl 2 linux bash shell awk

我想提取字段包含的数字。

例如,归档$5看起来[u8789]我需要8789.

我已经知道它可以用 echo "[u8789]"|awk -F'[^0-9]*' '$0=$2'

但是我在 awk 脚本中需要相同的内容,而且我还没有找到如何在不从 shell 调用 awk 的情况下获得预期结果。

谢谢

hek*_*mgl 5

我会使用grep:

grep -o '[[:digit:]]\+'
Run Code Online (Sandbox Code Playgroud)

什么时候awk应该使用并且你有gawk,你可以使用FPAT变量:

gawk '{print $1}' FPAT='[0-9]+'
Run Code Online (Sandbox Code Playgroud)

在没有帮助FPAT或分隔符艺术性的情况下,awk 脚本的“从内部” ,我会使用gsub(),如下所示:

awk '{gsub(/[^[:digit:]]/, "", $0)}1'
Run Code Online (Sandbox Code Playgroud)

进一步阅读: