bash уникальный идентификатор строки

Ввод: файл с отсортированными строками

Вывод: файл с (первым или любым) уникальным идентификатором строки из входного файла

пример

вход

abbylove abbylove abbylove abbylover abbylover abbylovesyou abbylovesyou abbylsmith abbylsmith abbylyn abbylynn 

Выход

 1 4 6 8 10 11 

0 индексируется также ОК.

Как создать такой вывод? Я не нахожу такой опции в командах shell uniq и sort .

Обновлено.

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

 abbylove2016 abbylove2017 abbylove2018 abb1999ylover abb2005ylover abbyloves2001you abbyloves2006you abbylsm1980ith abbylsm2010ith abbylyn2002 abbylynn1999 

и получить только

 abbylove2016 abb1999ylover abbyloves2001you abbylsm1980ith abbylyn2002 abbylynn1999 

Я думал, что удаление лет может помочь …

По крайней мере, с GNU uniq

 $ nl input | uniq --skip-fields=1 | cut -f1 1 4 6 8 10 11 

Отслеживание того, какой была предыдущая строка, и вывод требуемой информации, когда текущая строка не равна предыдущей:

 $ awk '$0 != prev { print NR, $0; prev = $0 }' file 1 abbylove 4 abbylover 6 abbylovesyou 8 abbylsmith 10 abbylyn 11 abbylynn 

или же

 $ awk '$0 != prev { print NR; prev = $0 }' file 1 4 6 8 10 11 

Для обновленного вопроса:

 $ awk '{ curr=$0; gsub("[0-9]","",curr) } curr != prev { print; prev = curr }' file abbylove2016 abb1999ylover abbyloves2001you abbylsm1980ith abbylyn2002 abbylynn1999 

Это работает, сначала удаляя все цифры из текущей строки, а затем сравнивая результат этого с предыдущей строкой (с удаленными цифрами). В случае несоответствия печатается исходная текущая строка.