我有这段代码:
echo $content | grep -o '<a href="[a-z]\+[^>"]*' | sed -ne 's/^<a href="\(.*\)/\1/p' | sed -ne 's~/^http[s]*:\/\/*\(.*\)/\1/p' | sed -ne "s;/\([^/]*\)\/\(.*\)/$1:::$2:::\1:::\2/;p"
如果你查看最后一个sed命令,你可以看到变量$ 2。
$ 2变量可能包含正斜杠&#34; /&#34;,这显然会导致问题。
我该如何避免这个问题?
答案 0 :(得分:3)
简单,更改sed分隔符..
sed -ne "s~\([^/]*\)\/\(.*\)~$1:::$2:::\1:::\2~p"
你的最后两个sed命令应该是,
sed -ne 's~^http[s]*:\/\/*\(.*\)~\1~p' | sed -ne "s;\([^/]*\)\/\(.*\);$1:::$2:::\1:::\2;p"