linux sed 批量替换文件内容

一、linux sed 批量替换多个文件内容
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`

其中,grep oldstring -rl yourdir是查寻目录中文件内容

 

如将indexeddb目录里的文件内容替换

#IDBTransaction.READ_ONLY替换为"readonly"

sed -i "s/IDBTransaction.READ_ONLY/\"readonly\"/g" `grep "IDBTransaction.READ_ONLY" -rl indexeddb/`

#driver.get_current_url()替换为driver.current_url

sed -i "s/driver.get_current_url()/driver.current_url/g" `grep "driver.get_current_url()" -rl webdriver/`

 

-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名

 

二、Perl命令:
perl -pi -e 's|ABCD|Linux|g' `find ./ -type f`
将调用perl执行一条替换命令,把find命令找到的所有文件内容中的ABCD替换为Linux

find ./ -type f
此命令是显示当前目录下所有的文件

上面的“s|ABCD|Linux|g”是perl要执行的脚本,即把所有ABCD替换为Linux
如果不写最后的那个g,“s|ABCD|Linux| ”将只替换每一行开头的ABCD

 

三、行尾匹配

如下:清除行尾的'/'

grep "<link rel=\"author\" title=\"Intel\" href=\"http:\/\/www.intel.com\" \/>" -rl ./ |xargs -I% sed -i 's/\/>$/>/g' %

注意表达式:s/ \ /> $/ > /g(即'/>' to '>')

几点说明:

1."^"代表行首,"$"代表行尾

2.'s/$/&TAIL/g'中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了

3.>> :如果文件不存在,将创建新的文件,并将数据送至此文件;如果文件存在,则将数据添加在文件后面
4.>  :如果文件不存在,同上,如果文件存在,先将文件清空,然后将数据填入此文件.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值