shell 批量修改指定的文件。

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

原文地址:https://www.cnblogs.com/xiaotuni/p/2365696.html