我有一个名为" demo"在我们的DNS中有名字。
我试图遍历每一行并替换"名称"使用"名称和IP地址" (作为验证dns查询的一种方式)
到目前为止,我有这个,但在sed或awk命令上没有运气。 帮助赞赏。
感谢。
1 10.1.22.117 qa/testing
2 172.16.1.5 dc/vpn
3 10.102.99.2 devtest/testing
"迪格斯"有一个别名,产生一行输出。
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
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
答案 0 :(得分:1)
无需循环,请尝试此$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
如果要维护输出中的选项卡 -
findByTaskTaskId(long taskId)
答案 1 :(得分:0)
你的问题很清楚你正在尝试做什么,但这是你在想什么?无需涉及sed
或awk
。
#!/bin/bash
while read -r line; do
echo $line $(dig +short $line|head -1) >> output.txt
done < ifile.txt
答案 2 :(得分:0)
sed -r 's#(.*\S+)(\s+)(\w+)/#\1==\3==\3\2\3/#' input.txt