Linux 要在回路中更换的sed/awk

Linux 要在回路中更换的sed/awk,linux,awk,sed,Linux,Awk,Sed,我有一个名为“demo”的文件,在我们的DNS中有名称 我试图循环每一行,并将“名称”替换为“名称和ip地址”(作为验证dns查询的一种方式) 到目前为止,我有这个,但没有运气在sed或awk命令。 谢谢你的帮助 谢谢 演示 “diggs”有一个别名,可以产生一行输出 期望输出 process.sh 你的问题很不清楚你想做什么,但这就是你的想法吗?无需参与sed或awk #!/bin/bash while read -r line; do echo $line $(dig +short

我有一个名为“demo”的文件,在我们的DNS中有名称

我试图循环每一行,并将“名称”替换为“名称和ip地址”(作为验证dns查询的一种方式)

到目前为止,我有这个,但没有运气在sed或awk命令。 谢谢你的帮助

谢谢

演示 “diggs”有一个别名,可以产生一行输出

期望输出 process.sh
你的问题很不清楚你想做什么,但这就是你的想法吗?无需参与
sed
awk

#!/bin/bash
while read -r line; do
    echo $line $(dig +short $line|head -1) >> output.txt
done < ifile.txt 
#/bin/bash
而read-r行;做
echo$line$(dig+short$line | head-1)>>output.txt
完成
不需要循环,试试这个
awk
一行程序

$cat file
1   10.1.22.117   qa 
2   172.16.1.5   dc
3   10.102.99.2   devtest
做-

输出-

1 10.1.22.117==qa==qa qa
2 172.16.1.5==dc==dc dc
3 10.102.99.2==devtest==devtest devtest
如果要维护输出中的选项卡-

awk 'BEGIN {OFS="\t"} {print $1, $2 "=="$3"=="$3, $3}' file

请添加示例输入和预期输出。。。当sed/awk逐行读取整个输入文件时,不清楚为什么需要循环。。。默认情况下,awk会在空白处拆分输入行…@SndLt在你的问题中,没有一点线索表明你正试图这么做。编辑您的问题以真正说明您的需求。
$cat file
1   10.1.22.117   qa 
2   172.16.1.5   dc
3   10.102.99.2   devtest
$awk '{print $1, $2 "=="$3"=="$3, $3}' file
1 10.1.22.117==qa==qa qa
2 172.16.1.5==dc==dc dc
3 10.102.99.2==devtest==devtest devtest
awk 'BEGIN {OFS="\t"} {print $1, $2 "=="$3"=="$3, $3}' file
sed -r 's#(.*\S+)(\s+)(\w+)/#\1==\3==\3\2\3/#' input.txt