Usando o GNU sed
:
sed -E '/(.).*/d' <file
Com o GNU sed
, pode-se usar um grupo de captura e uma referência de retorno em uma expressão regular como essa. Capturamos um único caractere com (.)
, seguido por qualquer número de outros caracteres e, em seguida, esse mesmo caractere novamente. Se o padrão corresponder, a linha será excluída da entrada, caso contrário, será impressa.
Exemplo:
$ cat file
coal
dream
fingers
me
peanut
serious
zepelin
$ sed -E '/(.).*/d' <file
coal
dream
fingers
me
peanut
Encontrando as palavras com caracteres repetidos:
$ sed -E '/(.).*/!d' <file
serious
zepelin
Isto também parece funcionar com o GNU grep
:
$ grep -vE '(.).*' <file
coal
dream
fingers
me
peanut
$ grep -E '(.).*' <file
serious
zepelin