linux 修改所有文件名为test里面的一条记录

来源:百度知道 编辑:UC知道 时间:2024/07/04 09:54:20
文件名test,这个文件有很多个,但是我不清楚他在什么地方,分布在各个文件夹里,每个test文件里面都有一条记录要改 oldrecord-->newrecord
我现在想把他们都找出来,批量修改,要怎么弄

其实 一行命令就ok了

sed -i 's/oldrecord/newrecord/g' `find ./ -name test`

find 路径 -name 文件名 -exec gedit {} \;

这个直接打开gedit来编辑你要的文件. 直接一行命令就编辑完成我还不知道怎么写.

我的blog: http://blog.591by.com

挨个找出来挨个修理

ripsy说的基本上可以了
如果要一行搞定的话, 可以用 sed 来做

find . -name test -exec sed -i 's/oldrecord/newrecord/g' {} \;

就可以把当前目录下面的所有test文件(包括子目录下的)中的oldrecord改成newrecord, 包括 123oldrecord456这样的单词, 如果想只改单词的话, 可以查一下sed或者是正则表达式相关的东西, 记得应该是sed -i 's/\<oldrecord\>/newrecord/g'这样的. 至于除了空格之外还有什么算是分隔单词的符号的, 也需要去查一查.

另外, -i参数是某些比较新的sed才支持的, 可能是gnu版的参数吧, 你可以看一看你的sed是不是支持这个.
做好备份, 改错了别怪我 :D