Como imprimir apenas uma linha alfanumérica do meu arquivo?

0

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
    
por sandy 20.06.2017 / 07:09

3 respostas

0

Este filtro fornece todas as linhas com pelo menos um caractere alfa:

grep '[[:alpha:]]' distinct_file.txt
    
por 20.06.2017 / 07:37
1

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:]]*'
    
por 20.06.2017 / 07:20
1

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
    
por 20.06.2017 / 07:14