🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.unix.shell
Article #1689

Re: How to get AWK to output 2 fields at once

#1689
From: Engbert Gerrit IJff
Date: Thu, 01 Nov 1990 15:20
49 lines
2308 bytes
In article <1990Oct29.171816.7459@mrspoc.Transact.COM>,
	itkin@mrspoc.Transact.COM (Steven M. List) writes:
) jak9213@helios.TAMU.EDU (John Kane) writes:
) 
) >In article <297@twg.bc.ca> bill@twg.bc.ca (Bill Irwin) writes:
) >>I  have what initially seemed to be a simple requirement:  get the  first
) >>two fields from each line in file_1, and use them as a search pattern for
) >>GREP to extract matching lines in file_2.  [...]
) 
) >>for x in `cat file_1 | awk '{ print $1 " " $2 }'`
) >>do
) >>        grep "$x" file_2
) >>done
) 
) >>Of course, the GREP routine executed with x having the value of the first
) >>field  of  the  first line of file_1, then with the value of  the  second
) >>field  of  the first line of file_1, then the first field of  the  second
) >>line, .....
) 
) >>Is  there a way to get AWK to output "field_1 field_2" as the value of x,
) >>so  that  this  can be used as the search pattern for GREP,  rather  than
) >>"field_1" "field_2" "field_1" "field_2"?
) 
) >Yep, There is.
) 
) >for x in `cat file_1 | awk '{print "\"" $1 " " $2 "\"")'`
) >do
) >   grep "$x" file_2
) >done
) 
) This seems a bit complicated, doesn't it?  How about:
) 
)     for x in "`cat file_1 | awk '{print $1, $2}'`"
)     do
)         grep "$x" file_2
)     done
) 
) That is, why worry about the backslashes and quotes INSIDE AWK, when you
) can put them outside?  Clean and simple!
) -- 

IMHO you will only get one x containing the whole awk output
and an this will cause the error message
	grep: illegal regular expression: No remembered search string.
However, using fgrep in your simple example works fine,
provided the whole construct is NOT meant to search for
regular expressions.

Bert.
Technical Details
Message-ID: <8109@star.cs.vu.nl>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!hp4nl!star.cs.vu.nl!engbert
References: <297@twg.bc.ca> <9622@helios.TAMU.EDU> <1990Oct29.171816.7459@mrspoc.Transact.COM>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!hp4nl!star.cs.vu.nl!engbert
From: engbert@cs.vu.nl (Engbert Gerrit IJff)
Newsgroups: comp.unix.shell
Subject: Re: How to get AWK to output 2 fields at once
Message-ID: <8109@star.cs.vu.nl>
Date: 1 Nov 90 15:20:07 GMT
References: <297@twg.bc.ca> <9622@helios.TAMU.EDU> <1990Oct29.171816.7459@mrspoc.Transact.COM>
Sender: news@cs.vu.nl
Reply-To: engbert@cs.vu.nl (Engbert Gerrit IJff)
Organization: VU Dept. of Computer Science, Amsterdam, The Netherlands
Lines: 49