码迷,mamicode.com
首页 > 系统相关 > 详细

Linux下批量替换文件内容和文件名(转)

时间:2017-12-03 13:03:48      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:log   art   net   pat   lin   .com   details   sed命令   命令   

1、批量替换指定多个文件的文件内容

在指定目录/your/path里,查找包含old_string字符串的所有文件,并用new_string字符串替换old_string字符串。

sed -i "s/old_string/new_string/g"  `grep old_string -rl /your/path`  

2、批量修改指定多个文件的文件名

在指定的路径/your/path下,查找以old_name字符串开头的所有文件,并以new_string替换掉old_string字符串。 

find /your/path -name old_name* | xargs -i echo mv \"{}\" \"{}\" | sed s/old_name/new_name/2g | sh  

实例:

find $PWD -name ‘\[www.java1234.com\]*‘ | xargs -i echo mv \"{}\" \"{}\" | sed ‘s/\[www.java1234.com\]/""/2g‘ | sh

说明:xargs提取查找的内容为参数,-i用于{}的提取,并提取到到指定变量{},echo是为了纯文本输出后面的mv命令,其中{}为变量,sed命令为文本编辑命令,其中可以执行s的替换,后面2g表示替换第二个匹配项。在使用时注意路径的空格和字符串转义。

 

参考:

http://blog.csdn.net/segments/article/details/50977693

Linux下批量替换文件内容和文件名(转)

标签:log   art   net   pat   lin   .com   details   sed命令   命令   

原文地址:http://www.cnblogs.com/EasonJim/p/7965559.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!