我有大约50个html文件,需要在所有文件中搜索和替换图像缩放器网址
我想要的是:
1:
找到:http://www.test1.com/showimage.php?fileUrl=
替换为:/resizer/phpThumb.php?src =
2:
删除:& mode = resizeByMinSize,cropToSize& cropPosition = topleft
3:
找到:& width =
替换为:& w =
4:
找到:& height =
替换为:& h =
5:
将此添加到图像的末尾url:& far = C& q = 85& zc = C
编辑:
此示例网址的输出应为:
/resizer/phpThumb.php?src=/uploads/images/5x6a6s9d7a9s7d8a9.jpg&w=64&h=64&far=C&q=85&zc=C
由于
答案 0 :(得分:2)
我将假设您的示例网址中间缺少一个片段。我认为以下sed脚本可能满足您的需求:
sed -e 's-http://www.test1.com/showimage.php?fileUrl=-/resizer/phpThumb.php?src=-; s/&mode=resizeByMinSize,cropToSize&cropPosition=topleft//; s/&width=/\&w=/g; s/&height=/\&h=/g; s/$/\&far=C\&q=85\&zc=C/;' /tmp/y.txt
答案 1 :(得分:1)
您的网址上面可能存在拼写错误,在第2点您要删除&mode=resizeByMinSize,cropToSize&cropPosition=topleft
,但您忘记提及如何处理esizeByMinSize,cropToSize&cropPosition=topleft
...
无论如何,下面的awk脚本解决了这个问题:根据你的需要调整它:
# replace 'www' below with a better pattern
/www/ {
sub(/http:\/\/www\.test1\.com\/showimage\.php\?fileUrl=/, "/resizer/phpThumb.php?src=")
gsub(/&mode=resizeByMinSize,cropToSize&cropPosition=topleft/, "")
gsub(/&width=/, "\\&w=")
gsub("&height=", "\\&h=")
$0 = $0 "&far=C&q=85&zc=C"
print
}
引用有点乱,请参阅awk-manual
将其包裹在find
序列中,您的问题就解决了。