得到一切直到美元符号,而且如果没有美元符号

时间:2018-08-27 13:15:16

标签: sed

我正在尝试使用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'

1 个答案:

答案 0 :(得分:1)

您的命令失败,因为您需要匹配第二组美元符号。尝试以下操作:匹配“ http”,后跟一个或多个非美元字符

sed -r 's/\$\$u(http[^$]+).*/\1/' thefile

或更简单

grep -Eo 'http[^$]+' thefile