У меня есть большой файл со ссылками, похожими на эти:
http://aaaa1.com/weblink/link1.html#XXX http://aaaa1.com/weblink/link1.html#XYZ http://aaaa1.com/weblink/link2.html#XXX http://bbbb.com/web1/index.php?index=1 http://bbbb.com/web1/index1.php?index=1 http://bbbb.com/web1/index1.php?index=2 http://bbbb.com/web1/index1.php?index=3 http://bbbb.com/web1/index1.php?index=4 http://bbbb.com/web1/index1.php?index=5 http://bbbb.com/web1/index2.php?index=666 http://bbbb.com/web1/index3.php?index=666 http://bbbb.com/web1/index4.php?index=5
Я хочу удалить все дублирующиеся ссылки и остаться с:
http://aaaa1.com/weblink/link1.html#XXX http://aaaa1.com/weblink/link2.html#XXX http://bbbb.com/web1/index.php?index=1 http://bbbb.com/web1/index1.php?index=1 http://bbbb.com/web1/index2.php?index=666 http://bbbb.com/web1/index3.php?index=666 http://bbbb.com/web1/index4.php?index=5
Как я могу это сделать?
Я надеюсь, что это удалит все дубликаты ссылок из вашего файла, но должны быть точно такие же значения.
sort -u your-link-file.txt
И если вы хотите сохранить его в другом файле, используйте это
cat your-link-file.txt | sort -u > result.txt
Не могли бы вы попробовать следующее.
awk -F'[#?]' '!a[$1]++' Input_file
Объяснение вышеуказанного кода:
awk -F'[#?]' ' ##Starting awk script from here and making field separator as #(hash) and ?(literal character) as per OP sample Input_file provided. !a[$1]++ ##Creating an array whose index is $1(first field of current line). Checking condition if $1 is NOT present in a then increase its value with 1. ##And ! condition will make sure each lines $1 should come only 1 time in array a so by doing this all duplicates will NOT be printed. ' Input_file ##Mentioning Input_file name here.