背景:
我有一列应该以“描述文本 ref12345678”的形式获取用户输入。我有现有的脚本来获取参考号,但不幸的是,有些用户错误地添加了它,所以它"ref12345678"
可以是"ref 12345678"
,或任何变体。自然,错误的格式会破坏一些触发的脚本。目前我无法控制用户对此字段的输入,所以我想稍后在管道中制作脚本只是为了获取数字。"RF12345678"
"abcd12345678"
目前我正在用 剥离字母awk '{gsub(/[[:alpha:]]/, "")}; 1'
,但替换似乎是一种低效的解决方案。(我知道我也可以这样做sed -n 's/.*[a-zA-Z]//p'
,tr -d '[[:alpha:]]'
但是它们本质上是相同的,我想要 awk 以获得额外的可编程性)。
问题是,有没有办法将 awk 设置为仅打印字符串中的数字,或者为字符串中的数字项设置分隔符?(或者替代真的是这个问题最有效的解决方案)。
总而言之:我如何使用 awk$ echo "ref12345678"
仅打印“12345678”而不进行替换?