我如何从“ value =“”中获取内容

时间:2018-10-20 18:58:51

标签: bash curl

这是代码:

#!/bin/bash
head=`curl -D -s "http://example.com/" | grep "j_id__v_0:javax.faces.ViewState:2"`
echo $head

和终端中的输出:

            </script>
            <input type="hidden" name="GlobalFooter_SUBMIT" value="1" />
            <input type="hidden" name="javax.faces.ViewState" id="j_id__v_0:javax.faces.ViewState:2" value="V7wZDq4cDizFPZ0i52hQGUD25XgWp5NJC+hCql33eTTwC2hm" autocomplete="off" />
        </form>
    </div>
</div> 

如何打印值的内容?

1 个答案:

答案 0 :(得分:0)

sed之后添加grep,仅保留值:

#!/bin/bash

head=$(curl -D -s "http://example.com/" | grep "j_id__v_0:javax.faces.ViewState:2" | sed 's/.*\svalue="\(\S*\)"\s.*/\1/')
echo $head

耦合点:

  • 使用$()语法将命令结果分配给变量。反引号语法虽然可以正常使用,但它是旧式语法。
  • \s:空格
  • \S:除空白之外的所有内容。我之所以使用它是因为.*是贪婪的,并且会包含value="SOMETHING" autocomplete="off之后的所有内容