提取网页中两个已知字符串之间的文本并将其存储在变量中

时间:2019-04-15 22:49:28

标签: linux awk sed grep

网页包含以下行:

  

var zx_fn =“带有任何可能字符的字符串”;

我下载了网页,然后尝试使用引号之间的部分并将其存储在变量中

我的代码:

#!/bin/sh
url="http://www.example.com/..."
content=$(wget -q -O - $url)
var1=$(sed -n '/^var zx_fn = "$/,/^";$/p' "$content")
echo $var1

它不起作用,因为它说:

  

sed:无法读取

它返回整个页面内容

在这种情况下还有什么更好的选择? grep,awk或sed?

这个问题被标记为重复,但是另一个问题并不能消除我的疑问,因为我需要变量存储和正则表达式方面的帮助。

如果我遵循该答案,代码将返回:

  

语法错误:重定向意外

1 个答案:

答案 0 :(得分:0)

$ foo='var zx_fn = "string with any possible character";'
$ bar=$(sed -n 's/var zx_fn = "\([^"]*\)";$/\1/p' <<< "$foo")
$ echo "$bar"
string with any possible character
假定

上面的“任何可能的字符”表示“ ...除双引号外”。如果它可以包含双引号,那么让我们知道它们在这些字符串中是如何转义的,以便我们告诉您如何处理它们。