awk - grep, awk - 每隔第一行输出一次
问题描述
我有数千个不同大小的图像链接。每个第一个链接都有最大的图像大小。它们看起来像这样:
https://userapi.com/c84472122/v844721232/143ffc/4Sgsfsf-EyA.jpg
https://userapi.com/c84472122/v844721232/143ffb/IdLDJU4usI8.jpg
https://userapi.com/c84612122/v846121642/13684b/jq5FRWnwzIY.jpg
https://userapi.com/c84612122/v846121642/13684a/wmKy022Qaik.jpg
https://userapi.com/c84612122/v846121642/136849/IZQrSossuMw.jpg
https://userapi.com/c85043622/v850436595/4df71/7y7qHUotpuI.jpg
https://userapi.com/c85043622/v850436595/4df70/nowGp0MVeO0.jpg
https://userapi.com/c85043622/v850436595/4df6f/HnkYnd2WQ_s.jpg
https://userapi.com/c84913622/v849136355/bd12b/sqyYycXM9ug.jpg
https://userapi.com/c84913622/v849136355/bd12a/7uqIIMykk50.jpg
https://userapi.com/c84913622/v849136355/bd129/f_XDzdpgH_g.jpg
https://userapi.com/c85003222/v850032096/b93df/xkQGlX6d6Ek.jpg
https://userapi.com/c85003222/v850032096/b93de/CWhHXRm99Lw.jpg
https://userapi.com/c85003222/v850032096/b93dd/RxBudOclDo0.jpg
所以,我不需要最大的图像。我只需要留下每个第一个链接。我怎样才能做到这一点?
我试过了:
grep -m 1 “c84472122\c84612122\c85043622\c84913622\c85003222” file.txt
但是我给了一个错误
解决方案
当分隔符为 <forward-slash> 时,图像位于第 4 和第 5 字段引用中。以下行比较这些字段并打印其中一个是否不同。
$ awk -F/ '($4!=a || $5!=b) { print; a=$4; b=$5 }' file
这输出:
https://userapi.com/c84472122/v844721232/143ffc/4Sgsfsf-EyA.jpg
https://userapi.com/c84612122/v846121642/13684b/jq5FRWnwzIY.jpg
https://userapi.com/c85043622/v850436595/4df71/7y7qHUotpuI.jpg
https://userapi.com/c84913622/v849136355/bd12b/sqyYycXM9ug.jpg
https://userapi.com/c85003222/v850032096/b93df/xkQGlX6d6Ek.jpg
推荐阅读
- google-apps-script - getBlob() 导致“无效的图像数据”。错误。Google Apps 脚本
- azure - 在没有 Connected Factory 解决方案加速器的情况下使用 Azure IoT Edge 和 OPC UA
- php - Zoho 响应返回 false
- angular5 - Geocode.Search 返回区域设置地址而不是泰国地址的英语语言
- python - 如何在 DynamoDB 上存储 numpy.ndarray?
- python - 内存不断增长,通过 pyZMQ 发布者套接字发布图像
- c++ - 如何在 C++ 中创建带有类的动态列表
- charts - 在 chart_flutter 时间序列图表中格式化和本地化日期标签
- node.js - ts-node 将选项传递给节点
- sql - 从单行动态提取多个文本 - SQL