zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    免密码远程登录和远程操作
    1、linux网络服务实验 用PuTTY连接Linux
    巧用CAS解决数据一致性问题
    第一天
    图像处理02
    图像处理01
    Poem 01(转)
    CS229 Lecture 01
    日本語1
    latex测试
  • 原文地址:https://www.cnblogs.com/xiaotuni/p/2365696.html
Copyright © 2011-2022 走看看