我正在尝试使用sed清理URL行以仅提取域名..
所以来自:
http://www.suepearson.co.uk/product/174/71/3816/
Run Code Online (Sandbox Code Playgroud)
我想要:
(有或没有火车斜线,没关系)
我试过了:
sed 's|\(http:\/\/.*?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)
和(逃避非贪婪量词)
sed 's|\(http:\/\/.*\?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)
但我似乎无法使非贪婪量词工作,所以它总是最终匹配整个字符串.
我有一个单行的Perl搜索和替换,看起来像这样:
perl -p -i -e 's/foo/bar/' non-existent-file.txt
Run Code Online (Sandbox Code Playgroud)
因为该文件不存在(这不是有意的,但这是自动化构建脚本的一部分,所以我想对此加以保护),Perl退出并出现以下错误:
Can't open non-existent-file.txt: No such file or directory.
Run Code Online (Sandbox Code Playgroud)
但是,退出代码仍为零:
echo $?
0
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?我应该修改脚本还是调用Perl的方式?我天真地假设,因为Perl找不到文件,所以它将以非零代码退出。