想用perl替换此语句:
perl -pe "s|(?<=://).+?(?=/)|$2:80|"
带
sed -e "s|<regex>|$2:80|"
由于sed具有功能强大得多的正则表达式引擎(例如它不支持环视),因此任务归结为编写sed兼容的正则表达式以仅匹配完全限定的URL中的域名。例子:
http://php2-mindaugasb.c9.io/Testing/JS/displayName.js
http://php2-mindaugasb.c9.io?a=Testing.js
http://www.google.com?a=Testing.js
应该成为:
http://$2:80/Testing/JS/displayName.js
http://$2:80?a=Testing.js
http://$2:80?a=Testing.js
这样的解决方案就可以了:
sed -e "s|<regex>|http://$2:80|"
谢谢:)
答案 0 :(得分:2)
使用以下sed命令。
$ sed "s~//[^/?]\+\([?/]\)~//\$2:80\1~g" file
http://$2:80/Testing/JS/displayName.js
http://$2:80?a=Testing.js
http://$2:80?a=Testing.js
您必须逃离替换部分的$
。
答案 1 :(得分:2)
sed 's|http://[^/?]*|http://$2:80|' file
输出:
http://$2:80/Testing/JS/displayName.js http://$2:80?a=Testing.js http://$2:80?a=Testing.js