grep, awk - выводить каждую первую строку - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть несколько тысяч ссылок на изображения, разных размеров.Каждая первая ссылка имеет самый большой размер изображения.Они выглядят так:

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

Но я выдал ошибку

1 Ответ

1 голос
/ 04 апреля 2019

Изображение находится в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...