grepping for form action = html页面的一部分

时间:2013-08-28 11:27:36

标签: regex linux grep

我正在尝试grep html表单的各个部分,特别是动作部分,即<form action = ….
我最初尝试过:
grep -E -e 'form\s*action\s*=.*[.]html' ./*
但它没有用(尽管有这样的字符串。
然后我尝试了基本的:grep -E -e 'form\s*action\s*=' ./*,但这也不起作用! 我做错了什么?

2 个答案:

答案 0 :(得分:1)

这不会让你采取行动。它将在行动之前为您提供帮助。例如,如果您有<form id="myForm" action="myFile.php">,那么正则表达式只会让您form id="myForm" action=

所以试试吧:

grep -E -o -i -e '<form\s+[^>]*action\s*=[^>]*>' ./*

[^>]*表示除>以外的所有内容,零次或多次 -o表示只获得匹配部分
-i表示不区分大小写

答案 1 :(得分:0)

为什么不使用html解析器/ xpath实现?就像我的Xidel

这将返回操作部分中的URL:

xidel ./* -e //form/@action

或者使用模式匹配,而不是xpath:

xidel ./* -e '<form action="{.}"/>*'

您甚至可以在其中进行所有进一步处理。例如。不仅可以获取动作,还可以使用url编码的所有输入元素的值:

xidel ./* -e //form/form(.)