html - 使用 AWK 提取 HTML 表单/输入内容
问题描述
我想提取形成内容进行处理。
我已经从 CURL 得到的是mycurlcommand | grep "type=\"hidden"
:
<input type="hidden" name="var1" value="ABC">
<input type="hidden" name="var2" value="DEF">
<input type="hidden" name="var3" value="GHI">
<input type="hidden" name="var4" value="JKL">
<input type="hidden" name="var5" value="">
我想得到这个:
var1=ABC
var2=DEF
var3=GHI
var4=JKL
var5=
处理并再次将其传递给 CURL。我确信在 awk/cut/sed 中可以做到这一点——其他 xml 解析工具在我有限的 linux 安装(小存储)上不可用。
解决方案
由于您提到xml解析工具不可用,您可以使用这些解决方案。但是,如果输入模式与问题中显示的示例不同,它可能不起作用。作为奖励,这些解决方案将消除对grep
问题中提到的命令的需求。
$ # use = or " characters as input field separator
$ # set = as output field separator
$ # print the required fields
$ awk -F'[="]' -v OFS='=' '/type="hidden"/{print $6, $9}' ip.txt
var1=ABC
var2=DEF
var3=GHI
var4=JKL
var5=
$ # this is useful when number of fields isn't fixed
$ # but the order has to be name followed by value
$ sed -nE '/type="hidden"/ s/.*name="([^"]*)".*value="([^"]*)".*/\1=\2/p' ip.txt
var1=ABC
var2=DEF
var3=GHI
var4=JKL
var5=
推荐阅读
- pandas - Groupby,按排名变换
- javascript - 变量的 innerHtml 确实更新但返回
- c++ - 如何在 C++ 中使用 WinINet API 在默认浏览器中打开 URL?
- amazon-web-services - AWS CodeCommit 通过定期 ssh 密钥轮换与 Bitrise 集成
- node.js - Nodejs exec不是这样的文件或目录
- python - 使用 PyPDF2 Python 合并具有相同前缀的 PDF 文件
- reactjs - 来自 Docker 的网络 IP 不适用于 React + Vite.js,因此无法访问 k8s pod
- python - 蟒蛇 | Tkinter RuntimeError:主线程不在主循环中
- javascript - 如何通过键盘和鼠标访问 input[type="date"]?
- c - 关于C中的时间戳