背景:
我有一个专栏should以“描述文本 ref12345678”的形式获取用户输入。我有现有的脚本可以获取参考号,但不幸的是一些用户错误地添加了它,所以而不是"ref12345678"
有可能"ref 12345678"
, "RF12345678"
, "abcd12345678"
或任何变体。当然,错误的格式会破坏一些触发的脚本。
目前我无法控制该字段的用户输入,因此我想稍后在管道中制作脚本只是为了获取数字。
目前我正在剥离这些字母awk '{gsub(/[[:alpha:]]/, "")}; 1'
,但替代似乎是一个低效的解决方案。 (我知道我也可以这样做sed -n 's/.*[a-zA-Z]//p'
and tr -d '[[:alpha:]]'
但它们本质上是相同的,我想要 awk 来获得额外的可编程性)。
问题是,有没有办法将 awk 设置为仅打印字符串中的数字,或为字符串中的数字项设置分隔符? (或者替代确实是这个问题最有效的解决方案)。
总而言之:我如何使用 awk$ echo "ref12345678"
仅打印“12345678”而不替换?
如果 awk 是not a must:
grep -o '[0-9]\+'
example:
kent$ echo "ref12345678"|grep -o '[0-9]\+'
12345678
with awk对于你的例子:
kent$ echo "ref12345678"|awk -F'[^0-9]*' '$0=$2'
12345678
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)