Awk - Multiline matching, printing filename and match -



Awk - Multiline matching, printing filename and match -

i have next awk command:

awk -v rs=! -v ors= '/abc/ && /def/ {print filename;}' files

this looks in each file in files, separates each record in file '!', , matches record 'abc' , 'def'. above code print name of file. if remove {print filename} print whole record if matched.

a file like:

abc1 bce bcd def ! abc2 bce def !

i want print out filename , line matches 'abc'. example:

file1 abc1 file2 abc2 abc3

how can go this?

awk 'fnr==1{print filename} /abc/' file1 file2

the fnr field set 1 new file read. fnr==1 true, @ first line of each input file, action performed print filename print file1 , file2

/abc/ match lines containing abc since no action specified, default beingness print entire record ($0) performed. similar writing /abc/{print $0}

file1 abc1 file2 abc2 abc3

awk

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -