unix - 从 url 读取参数
问题描述
我正在尝试从 URL 读取参数,我可以读取单行但我不知道如何在 awk 中循环,有人可以帮忙吗?
我有 1000 多个条目的文件,例如
http://projectreporter.nih.gov/project_info_details.cfm?aid=7714687&icde=0
http://projectreporter.nih.gov/project_info_description.cfm?aid=7896503&icde=0
http://projectreporter.nih.gov/project_info_details.cfm?aid=7895320&icde=0
http://projectreporter.nih.gov/project_info_details.cfm?aid=2675186&icde=9195637
我试图只检索“aid = xxxxxxx”,我使用以下命令来完成它,我得到了最后一行的“aid”
awk '{match($0,"aid=([^ &]+)",a)}END{print a[1]}' file1.txt > outputFile.txt
如何在循环中做同样的事情,这样我就可以得到所有的发生?任何帮助,将不胜感激
解决方案
这应该对您尝试的代码进行一些微调。
awk 'match($0,/aid[^&]*/){print substr($0,RSTART,RLENGTH)}' Input_file
如果您的单行可能出现多次aid
并且您想全部打印,请尝试以下操作。
awk '
{
while(match($0,/aid[^&]*/)){
print substr($0,RSTART,RLENGTH)
$0=substr($0,RSTART+RLENGTH)
}
}
' Input_file
推荐阅读
- docker - 如何在 Kubernetes 中配置带有已挂载的持久卷的 RabbitMQ 集群,以允许数据在整个集群重新启动时持久存在?
- vue.js - VueJS:单击我的组件时出现问题
- python - heroku 部署,关系“django_session”不存在
- android - Android 11 无障碍服务权限
- bash - 什么是 sha1sum “退出代码”?
- azure-cosmosdb - Cosmos DB 混合数据 API 访问(MongoDB 和 Gremin)
- mouseevent - ncurses:鼠标在终端模拟器中工作,但不是 tty(vt)
- inform7 - Inform7:如何使 Inform7 在您进入房间时仅显示一次文本,但每次进入该房间时都显示
- javascript - 我想设置一个变量等于数组中单击项目的索引
- javascript - Discord.js:将用户 ID(字符串)转换为用户 ID(Snowflake)