如何使用基础命令行工具基于URL前两个查询参数移除重复行
实现方案
核心思路
以「域名路径 + 查询字符串前2个参数」作为唯一判定键,统计每个键的出现次数,仅保留出现次数为1的原始URL行。
具体命令
假设你的URL存储文件名为urls.txt,直接执行以下命令即可得到结果:
awk -F'?' ' { # 拆分查询参数取前两位拼接唯一键 split($2, params, /&/) key = $1 "?" params[1] "&" params[2] # 统计出现次数并存储原始行 count[key]++ lines[key] = $0 } END { # 仅输出只出现过一次的行 for (k in count) { if (count[k] == 1) { print lines[k] } } }' urls.txt
如果需要把结果直接保存到新文件,在命令末尾加> unique_urls.txt即可。
效果验证
针对你给出的示例输入,执行上述命令后会直接输出:
https://www.example.com/page1.html?id=15645&key=fkldf032&user=250643&group=12 https://www.example.com/page1.html?id=26327&key=xkd9c03n&user=399494&group=15
完全符合删除所有重复行的需求。
内容的提问来源于stack exchange,提问作者M9A
相关产品推荐
相关产品推荐

