[英]awk extract number from field
我想提取一個字段包含的數字。
例如,提交的$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
或定界符FPAT
情況下,awk腳本的“從內部”,我將使用gsub()
,如下所示:
awk '{gsub(/[^[:digit:]]/, "", $0)}1'
進一步閱讀:
(g)awk腳本
您的問題不是很清楚...
以下2個例子
I)獲取每行中的前2個數字(@ hek2mgl之后)
#!/usr/bin/gawk -f
BEGIN { FPAT="[0-9]+"}
{ print $1,$2}
II)得到方括號內的所有數字[...]
#!/usr/bin/gawk -f
BEGIN { RS="["; FS="]"; }
{ print $1}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.