例如:我需要在当前目录下所有的css文件路径前追加域名
我想的是用sed替换去实现,鲍哥的思路是用for循环
1.1方法1:鲍哥的for循环
这是鲍哥的思路,我写出来后,鲍哥说很二.
for i in `find . -type f -name '*.css'`;do echo 'http://www.baidu.com/css/'$i;done
1.2方法2:sed替换
find . -type f -name '*.css'|sed -rn 's#(^.*)#'http://www.baidu.com/css/'\1#gp'
sed -r 支持正则
(^.*) 是find查找出来的结果通过管道,传送给sed正则匹配。也就是./icon.css等本地路径
'http://www.baidu.com/css/'\1 这个\1就是刚才sed正则(^.*)匹配出来的内容,
然后可以在前后批量追加你想要的内容。
命令并不完美,路径中间带点.如果各位客官有更好的命令欢迎留言。
2.需求:html文件css,js,img等路径批量替换
例如:我需要在js文件路径前批量添加js目录
sed -i's#^\(.* src="\)\(.*\.js.*\)$#\1js/\2#g' 文件名