gpt4 book ai didi

linux - sed/awk 在循环中替换

转载 作者:太空宇宙 更新时间:2023-11-04 04:57:25 25 4
gpt4 key购买 nike

我有一个名为“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

“diggs”有一个别名,可产生一行输出。

期望的输出

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

进程.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

最佳答案

不需要循环,试试这个 awk 单行代码。

$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

关于linux - sed/awk 在循环中替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42709351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com