Bash - необходимо получить записи с номерами строк, если найдены дубликаты на основе значений первых двух столбцов - PullRequest
0 голосов
/ 07 апреля 2020

Нужно помочь в Bash, чтобы напечатать дубликаты записей в файле с соответствующим номером строки. Дубликаты должны быть идентифицированы на основе комбинации первых двух столбцов.

Пример:

111|abc|scientist
222|ghu|developer
222|thu|doctor
222|ghu|engineer

Мне нужен вывод, как показано ниже, так как дубликат основан на комбинации первых 2 столбцов вместе с номером строки:

2, 222|ghu|developer
4, 222|ghu|engineer

1 Ответ

0 голосов
/ 07 апреля 2020

Если ваш ввод находится в файле input.txt, попробуйте:

awk -F '|' '{if (t[$1$2]) {print t[$1$2]; print NR", "$0} t[$1$2] = NR", "$0}' input.txt

Улучшение читаемости:

awk -F '|' '{
  if (t[$1$2]) {
    print t[$1$2]
    print NR", "$0
  } 
  t[$1$2] = NR", "$0
}' input.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...