具有migth包含的变量的SED" /"

时间:2016-01-17 11:56:15

标签: bash sed

我有这段代码:

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;,这显然会导致问题。

我该如何避免这个问题?

1 个答案:

答案 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"