shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Paralelizar com xargs


From: Alfredo Casanova
Subject: Re: [shell-script] Paralelizar com xargs
Date: Tue, 4 Jun 2013 20:01:43 -0300

eu precisava de uma chamada por linha do arquivo, por isso o -L1

vou reproduzir meu problema aqui e vc irá entender

montei todo o passo a passo nesse pastie:

http://pastie.org/8007032




2013/6/4 Julio C. Neves <address@hidden>

> Mas no duro vc colocou um -L1, que fará um a um.
>
> veja:
> $ seq 5 | xargs echo linha
> linha 1 2 3 4 5
> $ seq 5 | xargs -L1 echo linha
> linha 1
> linha 2
> linha 3
> linha 4
> linha 5
> $ echo {1..5} | xargs -n1 echo linha
> linha 1
> linha 2
> linha 3
> linha 4
> linha 5
> $ seq 5 | xargs -I{} echo no meio da {}ª linha
> no meio da 1ª linha
> no meio da 2ª linha
> no meio da 3ª linha
> no meio da 4ª linha
> no meio da 5ª linha
>
> Então as opções -n (palavra) e -L (linha) e tb a opção -I (alvo) atuam em
> um elemento de cada vez.
>
> O xargs é um cmd que foi feito para ser usado com o find, para evtar os
> "too many parameter" que eram frequentes. Então, por default, ele sepre vai
> tentar colocar atrás tudo que conseguir (ops! isso tá ficando esquisito ;).
> Essas opções é que alteram isso.
>
>
> Abcs,
> Julio
> *@juliobash
> *
>
>
>
> Em 4 de junho de 2013 19:15, Alfredo Casanova <address@hidden
> >escreveu:
>
> > **
> >
> >
> > Julio, me corrija se estiver errado, mas o -P5, pelo que sei, informaria
> ao
> > xargs pra executar no máximo 5 comandos paralelos ao mesmo tempo, assim
> > evito sobrecarga de processamento
> >
> > -P max-procs
> > Run up to max-procs processes at a time; the default is 1.
> > If max-procs is 0, xargs will run as many processes as possible at a
> time.
> > Use the -n option with -P; otherwise chances are that only one exec
> > will be done.
> >
> > (não utilizei o p minusculo, e sim o P maiusculo)
> >
> > 2013/6/4 Julio C. Neves <address@hidden>
> >
> > > Se entendi o que vc deseja, o uso da opção -P é desnecessária. Veja
> como
> > > usar o xargs aqui<
> > >
> https://wiki.softwarelivre.org/TWikiBar/TWikiBarBirinaite#Op_es_do_xargs
> > >
> > > .
> > >
> > > Abcs,
> > > Julio
> > > *@juliobash
> > > *
> > >
> > >
> > >
> > > Em 4 de junho de 2013 13:48, Alfredo Casanova <address@hidden
> > > >escreveu:
> > >
> > > > **
> > > >
> > > >
> > > > Galera, estou fazendo um teste para paralelizar o processamento de
> > alguns
> > > > arquivos
> > > >
> > > > os arquivos seguem o seguinte formato
> > > >
> > > > $ cat arquivo
> > > >
> > > > nome.usuario,primeiro nome,sobre nome,UF,grupo1 grupo2 grupo 3
> > > > nome1.usuario1,primeiro1 nome1,sobre1 nome1,UF1,grupo1 grupo2 grupo 3
> > > > nome0.usuario2,primeiro4 nome3,sobre2 nome2,UF1,
> > > >
> > > > o que estou fazendo:
> > > >
> > > > $ cat script
> > > > #!/bin/bash
> > > > var1=$1
> > > > var2=$2
> > > >
> > > > shift 2
> > > >
> > > > args="$*"
> > > >
> > > > echo "--------------------
> > > > $login
> > > > $senha
> > > > "$args"
> > > > --------------------"
> > > >
> > > > e executo o script assim:
> > > >
> > > > cat arquivo | xargs -P5 -n1 ./abcde arg1 arg2
> > > >
> > > > acontece que eu preciso q "$args" seja visto como um argumento só,
> > > > independente de possuir espaços, para que eu possa trata-los somente
> > com
> > > > cut.
> > > >
> > > > mas não é oq acontece:
> > > >
> > > > --------------------------------------
> > > >
> > > > Opa, escrevendo este e-mail encontrei a solucao
> > > >
> > > > argumento -L do xargs
> > > >
> > > > -L1: tells xargs to interpret each line as a single command
> > > >
> > > > ficou assim:
> > > >
> > > > $ cat arquivo | xargs -P5 -L1 ./abcde argumento1 argumento2
> > > >
> > > > --
> > > > []'s
> > > > Alfredo Casanova
> > > > Linux User #228230
> > > > msn: address@hidden
> > > > tel: +55 61 9655 9619
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> > > ------------------------------------
> > >
> > > ----------------------------------------------------------
> > > Esta lista não admite a abordagem de outras liguagens de programação,
> > como
> > > perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> > > prévio aviso.
> > > ----------------------------------------------------------
> > > Sair da lista: address@hidden
> > > ----------------------------------------------------------
> > > Esta lista é moderada de acordo com o previsto em
> > > http://www.listas-discussao.cjb.net
> > > ----------------------------------------------------------
> > > Servidor Newsgroup da lista: news.gmane.org
> > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > >
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> >
> > --
> > []'s
> > Alfredo Casanova
> > Linux User #228230
> > msn: address@hidden
> > tel: +55 61 9655 9619
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


-- 
[]'s
Alfredo Casanova
Linux User #228230
msn: address@hidden
tel: +55 61 9655 9619


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]