$ awk '{ curr=$0; gsub("[0-9]","",curr) } curr != prev { prev=curr; prevfull=$0; flag=0; next } !flag { print prevfull; flag=1 }' test
abbylove2007
abby1994lover
Primeiro, remova os dígitos da linha atual. Se o resultado disso for diferente da linha anterior com os dígitos removidos, atualize a linha anterior com essa linha, lembre-se da linha anterior completa e defina a variável flag
para zero e continue com a próxima linha.
A variável flag
é usada quando a linha de saída é a mesma da linha anterior para garantir que somente a saída destas linhas seja
Para linhas que são iguais à linha anterior (dígitos removidos), se o sinalizador não estiver definido, imprima a linha anterior completa e defina o sinalizador.