shell 批量修改指定的文件。
shell 批量修改指定的文件。
modify_file_list里的内容如下:
- Batch_modify_file_list.sh
- #!/bin/sh
- if [ -f modify_temp_file_list ];then #判断文件是否存
- 在,如果存在就删除掉。
- rm modify_temp_file_list
- fi
- for i in `awk '{print $1}' <modify_file_list`
- do
- echo $i >modify_temp_value #Create Temp value is use save value
- filename=`awk -F'|' '{print $1}' <modify_temp_value` #取出第一个值,从modify_temp_value文件里。
- oldip=`awk -F'|' '{print $2}' <modify_temp_value` #取出第二个值。
- newip=`awk -F'|' '{print $3}' <modify_temp_value` #取出第三个值。
- echo $filename.bak >> modify_temp_file_list #将改完名后的文件存放到一个临时文件里面。
- echo "=========开始修改: $filename 文件=`date '+%Y-%m-%d %H:%M:%S'`=="
- echo "=========开始修改: $filename 文件=`date '+%Y-%m-%d %H:%M:%S'`==" >> modify_file_list.log
- #下面这行代码就是修改文件内容。
- tr -s "$oldip" "$newip" <$filename >$filename.out && mv $filename $filename.bak && mv $filename.out $filename
- if [ $? -eq "0" ];then #判断修改内容是否成功。
- echo "文件名 $filename 修改成功.."
- echo "文件名 $filename 修改成功.." >> modify_file_list.log
- echo "修改前内容: $oldip ;修改后的内容: $newip"
- echo "修改前内容: $oldip ;修改后的内容: $newip" >> modify_file_list.log
- else
- echo "修改文件 $filename 失败。"
- echo "修改文件 $filename 失败。" >> modify_file_list.log
- fi
- echo "=========$filename 文件修改结束=`date '+%Y-%m-%d %H:%M:%S'`=="
- echo "=========$filename 文件修改结束=`date '+%Y-%m-%d %H:%M:%S'`==" >> modify_file_list.log
- done
- rm modify_temp_value #删除 modify_temp_value 文件。
- tar cvf `date '+%Y-%m-%d_%H:%M:%S'`.cfg.tar -I modify_temp_file_list #文件进行打包。
- for tempfilename in `awk '{print $1}' <modify_temp_file_list` #删除 .bak的文件。
- do
- rm $tempfilename
- done
- rm modify_temp_file_list #删除 modify_temp_file_list 文件
- /export/home/test/study/filename1|192.168.1.1|192.168.1.7
- /export/home/test/study/filename2|192.168.1.1|192.168.1.7
- /export/home/test/study/filename3|192.168.1.1|192.168.1.7
- /export/home/test/study/filename4|192.168.1.1|192.168.1.7
- /export/home/test/study/filename5|oldString|newString