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