aapl
aapl

Reputation: 13

extract digits between 2 patterns awk/egrep

I want to extract the variable number of digits between two patterns, eg:

correction:

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

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

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

output: 6, 10 and 100

I need to extract numbers between AMA # and ,

Upvotes: 1

Views: 1687

Answers (4)

Ed Morton
Ed Morton

Reputation: 203493

$ 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

Upvotes: 1

ghostdog74
ghostdog74

Reputation: 342363

No need to use sed if you use awk. Its redundant.

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

Upvotes: 0

glenn jackman
glenn jackman

Reputation: 246807

Assuming the two patterns the digits are supposed to be between are AAM# and ,

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

Upvotes: 0

Marcelo de Aguiar
Marcelo de Aguiar

Reputation: 1442

try a regular expression like (?<=#)\d+

Upvotes: 0

Related Questions