如何在两个字符串之间获取字符串

时间:2015-07-19 23:53:33

标签: linux bash awk grep

所以例如,我有一个这样的字符串:

Monad

我想抓住“q =”和“&”之间的子串,这是“aet12462awera”或“q = aet12462awera”也很好。 我尝试使用f=awerawet1351&q=aet12462awera&l=3ewar462&h=awiejt361 ,但问题是,“q =”字符串的位置不固定。有时,我会

awk -F'&'

因此我无法使用f= .... & l=.... &q=....& h=.... 来获得结果。

我还有使用unix命令来获取它吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

这似乎有效:

STRING='f=awerawet1351&q=aet12462awera&l=3ewar462&h=awiejt361'
echo $STRING | awk -F"q=" '{print $2}' | cut -f1 -d"&"

答案 1 :(得分:0)

string='f=awerawet1351&q=aet12462awera&l=3ewar462&h=awiejt361'
IFS='&'
for field in $string; do
    if [ "${field%=*}" = "q" ]; then
        echo ${field#*=}
    fi
done

查看parameter expansionIFS