Execute um comando para cada entrada em um arquivo

2

Como posso executar um comando para o arquivo que possui o endereço dos arquivos jar. O comando que eu quero executar é jar xf entry.jar . Eu gostaria de executar esse comando e enviar as saídas para outro arquivo.

Suponha que meu arquivo contenha as seguintes entradas.

a.jar
b.jar
c.jar

O que eu quero é simplesmente extrair esses arquivos jar e enviar a saída para outro arquivo.

    
por mibzer 16.01.2012 / 13:35

2 respostas

7

Eu acho que o que você quer é algo assim:

xargs -n1 -d'\n' jar xf <list

Em que list é o nome do arquivo que contém entradas.

Não sei ao certo o que você quer dizer com enviar as saídas para outro arquivo. Se você quiser um registro do que o comando jar imprime no console, você pode anexar um argumento >out.log no final.

(A opção -d está lá, no caso de nomes de arquivos conterem espaços e são listados um por linha.)

    
por 16.01.2012 / 13:46
0

Talvez

for entry in $(<list) ; do jar -xf "$entry"; done > output2.log

funciona para você?

jar -xf a b [...]

tentaria extrair b de a, mas você quer extrair todos os 3 jars, até onde eu possa ver.

    
por 16.01.2012 / 14:05

Tags