Shell

提取引號之間的所有內容

  • January 18, 2018

我正在嘗試使用 grep 或 sed 從看起來像的字元串中提取 urljavascript:open_window("http://www.example.com/somescript.ext?withquerystring=true");

每次都由我無法控制的外部應用程序生成 javascript 連結,因此我必須提取 URL 才能使用它。我嘗試過使用一大堆 grep 和 sed 的組合,但都沒有成功。

使用sed

sed -E 's/.*\("(.*)"\).*/\1/'

例子:

echo 'javascript:open_window("http://www.example.com/somescript.ext?withquerystring=true")' | sed -E 's/.*\("(.*)"\).*/\1/'
http://www.example.com/somescript.ext?withquerystring=true

只需使用 GNU grep

s='javascript:open_window("http://www.example.com/somescript.ext?withquerystring=true");'
grep -Eo 'http:[^"]+' <<<"$s"
http://www.example.com/somescript.ext?withquerystring=true

引用自:https://unix.stackexchange.com/questions/416865