executar um comando para varios arquivos simultaneamente [RESOLVIDO]

1. executar um comando para varios arquivos simultaneamente [RESOLVIDO]

Lucas da Silva
joas3198

(usa CentOS)

Enviado em 15/02/2013 - 19:03h

Ola, preciso executar um comando para 12 arquivos, como faco para que o comando utilize todos os arquivos de uma so vez sem que seja necessario eu digitar o nome de todos os arquivos 1 por 1.

o nome dos arquivos sao B4_5678968_L002_R1_001.EXTENSAO e a unica mudanca e na ultima numeracao: 001,002,003,004,005...012.

Desde ja agradeco a colaboracao.


  


2. Re: executar um comando para varios arquivos simultaneamente [RESOLVIDO]

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 15/02/2013 - 19:11h

joas3198 escreveu:

Ola, preciso executar um comando para 12 arquivos, como faco para que o comando utilize todos os arquivos de uma so vez sem que seja necessario eu digitar o nome de todos os arquivos 1 por 1.

o nome dos arquivos sao B4_5678968_L002_R1_001.EXTENSAO e a unica mudanca e na ultima numeracao: 001,002,003,004,005...012.

Desde ja agradeco a colaboracao.


Chama um loop for assim:
 $ for i `seq -n 001 012`; do comando B4_5678968_L002_R1_$i.extensao; done  

OBS: são crases isolando o seq.


3. Re: executar um comando para varios arquivos simultaneamente [RESOLVIDO]

Wellington Felix
wellingtonfelix

(usa Outra)

Enviado em 15/02/2013 - 19:38h

Cara, tente isto:

Entre dentro do diretório onde estão os arquivos e execute:

ls -l | grep "B4_5678968_L002_R1_" | awk '{ print "COMANDO --parametros "$9}' | /bin/sh  


Substitua COMANDO --parametros pelo seu comando e - se precisar - os parametros.

Explicando:

ls -l | grep "B4_5678968_L002_R1_"

Irá listar os arquivos do diretório e filtrar os começados com B4_5678968_L002_R1_ , assim, teremos:

 
[felix@localhost ~]$ ls -l | grep "B4_5678968_L002_R1_"
-rw-rw-r-- 1 felix felix 0 Feb 15 19:14 B4_5678968_L002_R1_001.EXTENSAO
-rw-rw-r-- 1 felix felix 0 Feb 15 19:14 B4_5678968_L002_R1_002.EXTENSAO
-rw-rw-r-- 1 felix felix 0 Feb 15 19:14 B4_5678968_L002_R1_003.EXTENSAO
-rw-rw-r-- 1 felix felix 0 Feb 15 19:14 B4_5678968_L002_R1_004.EXTENSAO
-rw-rw-r-- 1 felix felix 0 Feb 15 19:14 B4_5678968_L002_R1_005.EXTENSAO


ls -l | grep "B4_5678968_L002_R1_" | awk '{ print "COMANDO --parametros "$9}'

Irá filtrar apenas a nona coluna da saída do ls, no caso, apenas o nome dos arquivos. Teremos:


[felix@localhost ~]$ ls -l | grep "B4_5678968_L002_R1_" | awk '{ print "COMANDO --parametros "$9}'
COMANDO --parametros B4_5678968_L002_R1_001.EXTENSAO
COMANDO --parametros B4_5678968_L002_R1_002.EXTENSAO
COMANDO --parametros B4_5678968_L002_R1_003.EXTENSAO
COMANDO --parametros B4_5678968_L002_R1_004.EXTENSAO
COMANDO --parametros B4_5678968_L002_R1_005.EXTENSAO



ls -l | grep "B4_5678968_L002_R1_" | awk '{ print "COMANDO --parametros "$9}' | /bin/sh

Irá direcionar a saída do AWK para um shell, no caso, o SH.

Tenta aí e fala pra gente. ;)





4. Re: executar um comando para varios arquivos simultaneamente [RESOLVIDO]

Wellington Felix
wellingtonfelix

(usa Outra)

Enviado em 15/02/2013 - 19:42h

lcavalheiro escreveu:

joas3198 escreveu:

Ola, preciso executar um comando para 12 arquivos, como faco para que o comando utilize todos os arquivos de uma so vez sem que seja necessario eu digitar o nome de todos os arquivos 1 por 1.

o nome dos arquivos sao B4_5678968_L002_R1_001.EXTENSAO e a unica mudanca e na ultima numeracao: 001,002,003,004,005...012.

Desde ja agradeco a colaboracao.


Chama um loop for assim:
 $ for i `seq -n 001 012`; do comando B4_5678968_L002_R1_$i.extensao; done  

OBS: são crases isolando o seq.


Eita, não vi o post do @lcavalheiro.

Fino, mais um jeito anotado aqui, muito bom. :D


5. Funcionou

Lucas da Silva
joas3198

(usa CentOS)

Enviado em 15/02/2013 - 22:19h

Valeu meus caros, o Loop funcionou muito bem, agora sa 3 dias rodando os dados. Obrigado.


6. Re: executar um comando para varios arquivos simultaneamente [RESOLVIDO]

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 16/02/2013 - 00:31h

joas3198 escreveu:

Valeu meus caros, o Loop funcionou muito bem, agora sa 3 dias rodando os dados. Obrigado.


Beleza, agora marca como resolvido e indica uma melhor resposta pra ajudar a comunidade






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts