команда grep или awk для получения определенных данных - PullRequest
0 голосов
/ 12 февраля 2020

у меня большой текстовый файл

https://www.google.com/
https://www.google.com/hello?url=xxxxxx
https://www.google.com/admin?x=y&file=zzz
https://www.google.com/abc.png
https://www.google.com//abc.png
https://www.google.com/abc.svg
https://www.google.com/abc.jpg
https://www.google.com/admin?x=aaa&file=yyyy
https://www.google.com/hello?

все, что я хочу, это URL-адреса с параметрами, но одинаковые параметры не должны быть их с другим значением

https://www.google.com/hello?url=xxxxxx
https://www.google.com/admin?x=y&file=zzz

я хочу этот результат

1 Ответ

0 голосов
/ 14 февраля 2020

Вы можете использовать ассоциативный массив в awk, чтобы проверить, видели ли вы URI раньше, и просто напечатать первый экземпляр:

$ cat bar.txt
https://www.google.com/
https://www.google.com/hello?url=xxxxxx
https://www.google.com/admin?x=y&file=zzz
https://www.google.com/abc.png
https://www.google.com//abc.png
https://www.google.com/abc.svg
https://www.google.com/abc.jpg
https://www.google.com/admin?x=aaa&file=yyyy
https://www.google.com/hello?
$ awk -F? '$2 != "" && !already_seen[$1]++' bar.txt
https://www.google.com/hello?url=xxxxxx
https://www.google.com/admin?x=y&file=zzz
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...