我正在尝试 grep html 表单的部分,特别是<form action = ….
我最初尝试的操作部分:
grep -E -e 'form\s*action\s*=.*[.]html' ./*
但它不起作用(尽管有这样的字符串。
然后我尝试了基本的: grep -E -e 'form\s*action\s*=' ./*
但这也不起作用!
什么我做错了吗?
问问题
202 次
2 回答
1
这不会让你采取行动。它会让你在行动之前得到一部分。例如,如果你有<form id="myForm" action="myFile.php">
正则表达式只会让你form id="myForm" action=
所以改为尝试:
grep -E -o -i -e '<form\s+[^>]*action\s*=[^>]*>' ./*
[^>]*
表示除>
, 零次或多次之外的所有内容。
-o
表示只获取匹配的部分
-i
表示不区分大小写
于 2013-08-28T11:36:50.703 回答
0
为什么不使用 html 解析器/xpath 实现?就像我的Xidel一样:
这将返回操作部分中的 url:
xidel ./* -e //form/@action
或者使用模式匹配,而不是 xpath:
xidel ./* -e '<form action="{.}"/>*'
您甚至可以在其中进行所有进一步的处理。例如,不仅要获取操作,还要获取所有输入元素的值 url-encoded 您可以使用:
xidel ./* -e //form/form(.)
于 2013-08-28T13:03:19.947 回答