У меня есть текстовый файл, подобный этому:
id ; lorem ipsum fgdg df gdg
id ; lorem ipsum fgdg df gdg
id ; lorem ipsum fgdg df gdg
id ; lorem ipsum fgdg df gdg
id ; lorem ipsum fgdg df gdg
И если 2 идентификатора похожи, я хочу отделить строку, где 2 идентификатора похожи, и строку, которые являются уникальными.
uniquefile
содержит строки с уникальным идентификатором.notuniquefile
содержит строки, в которых их нет.
Я уже нашел способ почти сделать это, но только с первым словом.По сути, это просто изоляция идентификатора и удаление остатка строки.
Команда 1: изоляция уникального идентификатора (но отсутствует строка):
awk -F ";" '{!seen[$1]++};END{for(i in seen) if(seen[i]==1)print i }' originfile >> uniquefile
Команда 2: изоляция неуникального идентификатора(но пропуская строку и теряя содержимое «lorem ipsum», которое может быть различным в зависимости от строки):
awk -F ":" '{!seen[$1]++;!ligne$0};END{for(i in seen) if(seen[i]>1)print i }' originfile >> notuniquefile
Итак, в идеальном мире я хотел бы, чтобы вы помогли мне получить такой результат:
originfile
:
1 ; toto
2 ; toto
3 ; toto
3 ; titi
4 ; titi
uniquefile
:
1 ; toto
2 ; toto
4 ; titi
notuniquefile
:
3 ; toto
3 ; titi
Хорошего дня.