Linux 下查找替换的一个小例子

摘要: 最近遇到一个问题,一个程序有很多配置文件,在这些配置文件里有一些关键词需要替换,当然,这些关键词在很多文件中,也可能在子目录中。我可不太想一个文件一个文件的打开去检查,查找替换。这是没有办法才会做的事。当然可以通过编程用 正则表达式 去做。用程序遍历整个文件夹,然后用程序去替换。但其实还可以用shell 脚本实现,很简单的。1.  查找和替换所有文件2.  查找和替换指定的文件

最近遇到一个问题,一个程序有很多配置文件,在这些配置文件里有一些关键词需要替换,当然,这些关键词在很多文件中,也可能在子目录中。我可不太想一个文件一个文件的打开去检查,查找替换。这是没有办法才会做的事。当然可以通过编程用 正则表达式 去做。用程序遍历整个文件夹,然后用程序去替换。但其实还可以用shell 脚本实现,很简单的。
为了做测试,我自己建立了一个Test 文件夹,里面放了两个文件,其中多个地方都有内容"old text" ,两个文件都有。

比如 1.txt 的内容如下

this is a test file
how can i replace text ,
==============
the old text 001
the old text 002
==============

文件2.txt 里面的内容,也有很多 "old text" 的关键词.
现在开始替换,有两种情况:
查找和替换所有文件
grep -lr -e 'old text' * | xargs sed -i 's/old text/new text/g'



运行之后,你会发现 Test 文件夹下所有文件里包含 old text 都被替换成了 new text .达到我的目的。详细介绍下命令:
grep 表示过滤,管道
-l 表示列表
-r 表示递归
-e 表示正则表达式
s/ 表示替换
/g 表示全局,也就是替换所有的.

查找和替换指定的文件
find -name 1.txt|xargs sed -i 's/old text/new text/g'


对指定的文件,就可以这样替换了。

参考文档: http://www.linuxjournal.com/content/applying-xargs

上一篇: mybatis实战教程(mybatis in action)之五:与spring3集成(附源码)
下一篇: 怎么在linux 下查找一个文件
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号