Referenciando grupos em regex na linha de comando

1. Referenciando grupos em regex na linha de comando

João Paulo Nogueira
joaopcnogueira

(usa Outra)

Enviado em 26/10/2016 - 17:44h

Olá pessoal, boa tarde! Gostaria de saber como faço pra referenciar um grupo em uma regex por linha de comando. Um problema que ilustra minha dúvida é a seguinte: Imaginem que eu tenho uma pasta com varios arquivos e, dentro dessa pasta, há 5 arquivos que me interessam com os seguintes nomes:

k5_a2_b3.dat
k6_a1_b7.dat
k2_a9_b4.dat
k1_a4_b8.dat
k2_a2_b2.dat

Na linha de comando, para listar esses arquivos, eu posso fazer o seguinte:

$ ls | grep '^k[0-9]_a[0-9]_b[0-9]\.dat'.

O comando acima irá me listar os arquivos que me interessam. Agora supondo que eu queira apenas o nome dos arquivos sem a extensão, eu poderia aplicar um grupo na regex:

$ ls | grep '^(k[0-9]_a[0-9]_b[0-9])\.dat'.

Como eu faço pra referenciar esse grupo para poder, por exemplo, redirecionar esse resultado para um arquivo?


  


2. Re: Referenciando grupos em regex na linha de comando

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/10/2016 - 18:06h

O comando ls aceita [0-9] na linha de comando.
Creio grep ser desnecessário.

ls 'k... etc dat' > arquivo.txt

EDIT

Sem a extensão fica

ls 'k ... arq .dat' | sed -r 's/\.dat//g'

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts