Obtendo linhas de arquivos com extensão específica

1

Estou tentando obter algumas linhas específicas de arquivos com uma extensão específica (.pvc). Esses arquivos são armazenados em diretórios diferentes. Então eu quero colocar todas as linhas em um único arquivo txt.

por exemplo,

directory1/file_a.pvc
directory2/file_b.pvc
. 
.
directory100/file_x.pvc

Estou tentando usar o seguinte for loop, mas não funciona.

for i in {1..5}
do
 echo $i
 cd /home/directory"$i"
 grep -e L1 -e L2 /*.pvc > /home/all_lines.txt
done
    
por Fersal 13.03.2017 / 17:58

2 respostas

0

Publicando uma resposta conforme solicitado:

grep -h 'L1|L2' ~/directory{1..5}/*.pvc >~/all_lines.txt 

-h informa grep para não imprimir nomes de arquivos, L1|L2 procura por linhas L1 e L2 e directory{1..5} expande para directory1 , ..., directory5 .

    
por 13.03.2017 / 19:40
0

São todos subdiretórios dentro de um diretório específico (father_directory)?

Você pode tentar:

find /father_directory -iname '*pvc' -exec grep -e L1 -e L2 {} \; > /home/all_lines.txt

ou, como sugerido pelo @Philippos (obrigado):

grep -r /father_directory -e L1 -e L2 --include "*.pvc" > /home/all_lines.txt
    
por 13.03.2017 / 18:05