Shell
提取引號之間的所有內容
我正在嘗試使用 grep 或 sed 從看起來像的字元串中提取 url
javascript: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