Este filtro fornece todas as linhas com pelo menos um caractere alfa:
grep '[[:alpha:]]' distinct_file.txt
Aqui está o meu arquivo .Este arquivo eu preciso imprimir apenas uma linha alfanumérica usando comandos linux / unix?
1234567890
1234567890
123456789X
0974385495
Resultado esperado:
123456789X
Resultado obtido pelo seguinte comando:
$ tr -cd '[:alnum:]' < distinct_file.txt
12345678901234567890123456789X0974385495
Se você deseja que as linhas contenham pelo menos um dígito e pelo menos um caractere alfabético, então:
< file grep '[[:digit:]]' | grep '[[:alpha:]]'
Se, além disso, você quiser que todos os caracteres sejam alnums, será possível canalizar o acima para grep -v '[^[:alnum:]]'
(remover as linhas ( -v
) que contêm pelo menos um não-alnum) ou em um grep
comando:
< file grep -xe '[[:alnum:]]*[[:digit:]][[:alnum:]]*[[:alpha:]][[:alnum:]]*' \
-e '[[:alnum:]]*[[:alpha:]][[:alnum:]]*[[:digit:]][[:alnum:]]*'
Com grep
: faça um OR ( |
) de qualquer alfabético ( [:alpha:]
), seguido a qualquer momento por qualquer dígito ( [:digit:]
) e vice-versa:
grep -E '[[:alpha:]].*[[:digit:]]|[[:digit:]].*[[:alpha:]]'
Exemplo:
% cat file.txt
1234567890
1234567890
123456789X
0974385495
% grep -E '[[:alpha:]].*[[:digit:]]|[[:digit:]].*[[:alpha:]]' file.txt
123456789X
Tags text-processing linux