shell 批量修改指定的文件。
2008-12-09 12:17
375 查看
shell 批量修改指定的文件。
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 文件
modify_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
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 文件
modify_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
相关文章推荐
- shell 批量修改指定的文件。
- 【Linux】使用sed、awk来完成批量修改配置文件的shell设计
- ZZ shell 一句话批量修改文件后缀
- 批量修改文件名字的shell 函数方法.
- Shell脚本遍历目录并批量修改文件编码
- Python批量修改指定目录下的文件名和文件内容
- 使用终端shell命令批量修改一个文件下的所有文件的读写权限
- 批量修改文件名称或者文件内容的shell脚本
- Shell脚本遍历目录并批量修改文件编码
- Java--获取指定格式的文件并批量修改文件
- shell删除指定日期之前修改过的文件
- shell脚本修改配置文件指定行的值
- java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码
- java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码
- Shell 批量复制文件名相近的文件到指定文件名中
- 批量添加顺序用户(如果要添加指定文件里的用户,稍作修改即可)
- java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码
- python 批量修改预定字符串并将修改后的字符串插入文件指定位置
- shell脚本:批量修改文件扩展名
- shell数组及random相关应用和批量修改建立用户,检查文件篡改脚本