我已经搜索了很多但没有成功的情况。 希望得到有用的建议
提前感谢您的帮助......
我在变量中存储的IP地址很少[比如IP = {10.10.10.10 20.20.20.20 30.30.30.30}]
我的要求是在此变量中迭代IP,搜索文本[说地址]并在下一行中插入此IP地址,在文件中找到文本。
示例:
让我们的文件内容如下,我必须搜索文本“地址”并在其下面添加IP
...
地址
...
替换IP文件后应该看起来像 -
...
地址
地址10.10.10.10
地址20.20.20.20
地址30.30.30.30
...
答案 0 :(得分:0)
让我们说你的意思是:
IP="10.10.10.10 20.20.20.20 30.30.30.30"
您可以将它们放入/分割为索引数组:
set -A ip ${IP}
然后你可以循环遍历数组:
for ((i=0 ; i<=${#ip[*]}; i++))
do
sed s/${word[${i}]}/${ip[${i}]}/g ${fileIn} > ${fileOut}
done
*请注意我是如何假设你有一个名为word []的匹配数组(来自OP的不清楚,要替换的测试来自哪个。)
答案 1 :(得分:0)
我对input.file的结构不肯定,但我猜这个:
addy10
10.10.10.10
addy20
20.20.20.20
addy30
30.30.30.30
while read buff
do
if [[ ${buff} == [0-9]*.[0-9]*.[0-9]* ]]
then
echo "${address} ${buff}"
elif [[ ${buff} == [a-Z]* ]]
then
address=${buff}
fi
done < input.file