|
藍森林 http://www.lslnet.com 2006年6月26日 11:18
請教高手:如何批量替換文件中的字符串?
我現在有好多代碼,在不同的目錄下,
文件中有許多一樣的字符串。比如:
/home/usr/a/a.c
/home/usr/b/b.c
/home/usr/c/c.c
/home/usr/d/d.c
這些文件裡面都有字符串home/usr,
現在我想把他們都替換成usr。
好多文件,並不是只有四個。
我在/home/usr下
用find . -name '*c' |xargs grep home |cut -d ':' -f 1 可以得到這些文件名。
該如何做? |
http://www.lslnet.com/linux/#viewthread.php?tid=452942&extra=page%3D1 |
我看了以後不知道該如何解決,懇請幫忙。 |
再看一遍,重點看sed部分 |
http://hepg.sdu.edu.cn/Chinese_2003/service/computer/users_guide/linux/substr
裡面這個腳本可以實現。請查看。
像你上面的情況,你想將/home/usr下的所有文件中的aa替換成bb ,你可以執行
#cd /home/usr
#sh substr.sh aa bb
done.
:) |
回復 1樓 liqxy 的帖子
vim中直接就可以查找替換
** 輸入 :s/old/new/g 可以替換 old 為 new。**
1. 請將光標移動到本節中下面標記有 ---> 的那一行。
2. 輸入 :s/thee/the <回車> 。請注意該命令只改變光標所在行的第一個匹配
串。
3. 輸入 :s/thee/the/g 則是替換全行的匹配串。
---> the best time to see thee flowers is in thee spring.
4. 要替換兩行之間出現的每個匹配串,請輸入 :#,#s/old/new/g (#,#代表的是
兩行的行號)。輸入 :%s/old/new/g 則是替換整個文件中的每個匹配串。 |
| |