linux - awk 从字段中提取数字

标签 linux bash shell awk

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

例如,$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/

相关文章:

c - C中子进程的内存使用

linux - 什么是事件内存和非事件内存

linux - 守护进程如何在不使用内存的情况下保持事件状态?

linux - 如何从vim中删除特定的文件缓冲区?

命令内的 Bash 重定向

linux - 在 Linux 启动脚本中获取其他脚本

shell - 对制表符分隔文件中的所有 "cells"执行算术运算

regex - sed 命令替换大括号内的数据

python - 通过模式匹配从多个文件中提取行并将其写入Linux中的另一个文件

linux - 如果 "echo $?"命令返回 2 怎么办?