我想提取一个字段包含的数字。
例如,$5
看起来像 [u8789]
我需要 8789
。
我已经知道可以用 echo "[u8789]"|awk -F'[^0-9]*' '$0=$2'
但是我在 awk 脚本中需要相同的东西,而且我还没有找到如何在不从 shell 调用 awk 的情况下获得预期的结果。
谢谢
最佳答案
我会使用 grep:
grep -o '[[:digit:]]\+'
当应该使用awk
并且您有gawk
时,您可以使用FPAT
变量:
gawk '{print $1}' FPAT='[0-9]+'
在没有 FPAT
或定界符艺术帮助的情况下,awk 脚本的“内部”,我会使用 gsub()
,如下所示:
awk '{gsub(/[^[:digit:]]/, "", $0)}1'
进一步阅读:
关于linux - awk 从字段中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33941202/