我有三个文件,每个文件中有2259个IP地址的两个文件。一个带有137772的文件。该脚本使用sed与bash阵列和for循环来替换具有不同IP的access.log中的IP。几个小时运行脚本后失败,此错误:sed查找替换使用bash阵列失败
的sed:-e表达式#1,烧焦0:没有以前的正则表达式
uniq的IP地址的数量也短六个IP地址。
下面是脚本:
#!/bin/bash
_ORGIFS=$IFS
IFS=$'\n'
_alIPs=($(<access.log.IPs)
_fIPs=($(<randomIPs.txt)
for ((_i=1; _i<=2259; _i++))
do
sed -i "s/${_alIPs[$_i]}/${_fIPs[$_i]}/g" access.log
done
IFS=$_ORGIFS
或者,只需使用awk而不是sed进程替换。 –