提取2个模式awk / egrep之间的数字

时间:2010-08-11 20:17:29

标签: awk grep

我想提取两种模式之间的可变位数,例如:

更正:

blah blah.... AAM #6,blah blah

blah blah.... AAM #10 , blah blah

blah blah.... AAM #100 , blah blah

输出:6,10和100

我需要在AMA #,

之间提取数字

4 个答案:

答案 0 :(得分:1)

$ cat file
blah blah.... AAM #6,blah blah
blah blah.... AAM #10 , blah blah
blah blah.... AAM #100 , blah blah

$ awk -F'(AAM #| *,)' '{print $2}' file
6
10
100

答案 1 :(得分:0)

尝试像(?< =#)\ d +

这样的正则表达式

答案 2 :(得分:0)

假设两个模式之间的数字应该是AAM#,

gawk 'match($0, /AAM #([[:digit:]]+)[[:space:]]*,/, a) {print a[1]}'

答案 3 :(得分:0)

如果你使用awk,则无需使用sed。它是多余的。

gawk 'BEGIN{FS="/"}/COMPLETED/{
  match($7, /AAM #([[:digit:]]+)[[:space:]]?,/, a)
  printf "%s %s:%s \n", substr($4,1,10),substr($6,8,1),  a[1] 
} ' file