我正在尝试使用sed来获取一切,直到美元符号为止:
$$uhttp:///www.stackoverflow.com$$3blablabla
sed -r 's/\$\$u(http.*)(\$\$.*)/\1/g' thefile
这给了我链接。
但是,如果我只有这个:
$$ uhttp:///www.stackoverflow.com
同一个sed无法正常工作。
将最后一部分设为“ *”(零个或多个)是不可行的:
sed -r 's/\$\$u(http.*)(\$\$.*)*/\1/g'
答案 0 :(得分:1)
您的命令失败,因为您需要匹配第二组美元符号。尝试以下操作:匹配“ http”,后跟一个或多个非美元字符。
sed -r 's/\$\$u(http[^$]+).*/\1/' thefile
或更简单
grep -Eo 'http[^$]+' thefile