Skip to content
Advertisement

sed/awk to replace in a loop

I have a file called “demo” that has names in our DNS.

I’m trying to loop through each line and replace the “names” with “names and ip address” (as a way of verifying dns queries)

So far I have this but no luck on sed or awk command. Help appreciated.

Thanks.

demo

1   10.1.22.117   qa/testing 
2   172.16.1.5   dc/vpn
3   10.102.99.2   devtest/testing

“diggs” has an alias that yields one line output.

desired output

1   10.1.22.117==qa==qa   qa/testing
2   172.16.1.5==dc==dc   dc/vpn
3   10.102.99.2==devtest==devtest   devtest/testing

process.sh

for i in $(awk -F "   " '{print $2}' demo)
do
        bothR="$i==$(diggs $i)"
        echo "$i==$bothR"
        echo "#######"
        #what sed?
        #sed -i "s/$i/$bothR/" demo        
        #sed '0,/"$i"/s//"$bothR"/' demo                 
done

Advertisement

Answer

Your question is very unclear as to what you’re trying to do, but is this what you’re thinking? No need for getting sed or awk involved.

#!/bin/bash
while read -r line; do
    echo $line $(dig +short $line|head -1) >> output.txt
done < ifile.txt 
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement