Unexepcted behavior from read and cat

Paul Schmehl pauls at utdallas.edu
Mon May 12 18:59:48 UTC 2008


I created a small list of IPs that I wanted to do digs on (because I'm lazy and 
don't want to do them one at a time.)

I then wrote the following on the commandline:

% dig +short -x `cat iplist`

The results was an answer for the first line only.

So, I thought read line would do the trick.  I tried this:

% dig +short -x `(read line; echo $line; while read line; do echo $line; done) 
< iplist`

Same result.

I even tried:

% dig +short -s `cat iplist | awk '{print $1}'`

Same result.  (Yes, I know, why do twice the work to get the same answer, but I 
was desperate.)

WTF?  Why do these utilities, which usually read all the lines in a file now 
only work once when run through dig?  Is there a way to feed dig a list of IPs 
and have it return each and every one of them?

I tried dig +short -x -f iplist, but that returns nothing at all.

Sure, I can edit the file and prepend +short -x to each line, but by then I 
might as well just do them individually.

What am I missing?

-- 
Paul Schmehl (pauls at utdallas.edu)
Senior Information Security Analyst
The University of Texas at Dallas
http://www.utdallas.edu/ir/security/



More information about the freebsd-questions mailing list