[shell-script] Re: substituir
como seria a solução em awk? --- Em shell-script@yahoogrupos.com.br, "Fabiano Caixeta Duarte" <[EMAIL PROTECTED]> escreveu > > 2008/8/26 Elvio Barbalho <[EMAIL PROTECTED]>: > > Thiago sua sugestão não funcionou pois estou trabalhando num sistema > > Solaris, testei num Linux e funcionou perfeitamente. > > > > Jimmy sua sugestão funcionou perfeitamente, agora supondo que o arquivo > > tenha uma quantidade impar de linhas, seguindo sua lógica como eu faria para > > o aquivo ficar assim: > > 1 > > 2 > > 3 > > 4 > > 5 > > > > 1-2 > > 3-4 > > 5-5 > > Continuo sentindo falta das tentativas realizadas pelos > "perguntadores" para construção do conhecimento. > > last=$(wc -l arquivo | cut -d" " -f1) #Número da última linha do arquivo > [ $((last%2)) -eq 1 ] && sed ${last}p arquivo # se última linha é > ímpar, duplique-a > > 1 > 2 > 3 > 4 > 5 > 5 > > O resto você já sabe ;) > > > -- > Fabiano Caixeta Duarte > Especialista em Redes de Computadores > Linux User #195299 > Ribeirão Preto - SP >
Re: [shell-script] substituir
___ a solução do colega Fabiano Caixeta Duarte é bem melhor, se tivesse usado mais a cabeça em vez do braço como ele fez teria feito isso melhor. a minha solução não funciona independente do número de linhas ser par ou ímpar, a dele funciona. não queria usar o sed, é que na hora não tinha achado nenhuma outra alternativa, queria usar apenas shell. no sed eu fiz o seguinte: $!s/ /-/# substitua todos os espaços com exceção da última linha $s/.*/&-&/ # replique a última linha com um hífem entre elas preferira mandar essas coisas para a lista sed-br que assino, e deixar aqui somente shell mesmo. ___ On Tue, Aug 26, 2008 at 05:39:58PM -0300, Elvio Barbalho wrote: > Jimmy funcionou blz aki, agora se não for muito não entendi nada o que vc > fez no sed teria como me explicar > > 2008/8/26 jimmy <[EMAIL PROTECTED]> > > > __ > > > > usando o sed: > > > > seq 1 5 | xargs -l2 | sed '$!s/ /-/;$s/.*/&-&/' > > > > puramente em shell fica complicado. > > > > i=1 > > seq 1 5 | while true; do > > read 'x' || exec echo $n > > n=$x > > if [ $(expr $i % 2) -eq 1 ]; then > > echo -n "$x-" > > else > > echo $x > > fi > > let i++ > > done > > > > __ > > > > On Tue, Aug 26, 2008 at 03:58:57PM -0300, Elvio Barbalho wrote: > > > Thiago sua sugestão não funcionou pois estou trabalhando num sistema > > > Solaris, testei num Linux e funcionou perfeitamente. > > > > > > Jimmy sua sugestão funcionou perfeitamente, agora supondo que o arquivo > > > tenha uma quantidade impar de linhas, seguindo sua lógica como eu faria > > para > > > o aquivo ficar assim: > > > 1 > > > 2 > > > 3 > > > 4 > > > 5 > > > > > > 1-2 > > > 3-4 > > > 5-5 > > > > > > 2008/8/26 jimmy <[EMAIL PROTECTED] > > > > > > > > __ > > > > > > > > $ seq 10 | xargs -l2 | tr ' ' - > > > > > > > > mas a opção anterior é bem melhor. > > > > > > > > __ > > > > > > > > On Tue, Aug 26, 2008 at 03:29:43PM -0300, Tiago Barcellos Peczenyj > > wrote: > > > > > Teste essa solução > > > > > $ seq 10 | paste -d\- - - > > > > > > > > > > ou > > > > > > > > > > $ paste -d\- - - arquivo > novo.arquivo > > > > > > > > > > 2008/8/26 Elvio Barbalho <[EMAIL > > > > > PROTECTED] > > > > > > > > >: > > > > > > Senhores boa tarde, estou com o seguinte problema: > > > > > > > > > > > > tenho um arquivo assim: > > > > > > > > > > > > 1 > > > > > > 2 > > > > > > 3 > > > > > > 4 > > > > > > 5 > > > > > > 6 > > > > > > 7 > > > > > > 8 > > > > > > 9 > > > > > > 10 > > > > > > > > > > > > quero que ele saia assim: > > > > > > > > > > > > 1-2 > > > > > > 3-4 > > > > > > 5-6 > > > > > > 7-9 > > > > > > 9-10 > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Tiago B Peczenyj > > > > > Linux User #405772 > > > > > > > > > > http://peczenyj.blogspot.com/ > > > > > "what does not kill us makes us stronger" > > > > > > > > > > > > > > > > > > > > -- > > > > > 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: [EMAIL > > > > > PROTECTED] > > > > > > > -- > > > > > 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 > > > > > > > > > __ > > > > > > > > > > > > > > > > > [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: [EMAIL > > > PROTECTED] > > > -- > > > Esta lista é moderada de acordo com o previsto em > > http://www.listas-discussao.cjb.net > > > -- > > > Servidor Newsgroup da lista: news.gmane.org > > > Grupo: gman
Re: [shell-script] Re: substituir
___ On Wed, Aug 27, 2008 at 10:58:49AM -, voyeg3r wrote: > como seria a solução em awk? não seria algo para ser enviado para a lista awk-br? ela tá parada lá, só com um desafio que deixei e mais nada. seq 1 5 | awk '{if((NR%2)==1){ORS="-"}else{ORS="\n"}print $0}END{if((NR%2)==1){ORS="\n";print $0}}' essa funciona com número de linhas pares e ímpares. > > > --- Em shell-script@yahoogrupos.com.br, "Fabiano Caixeta Duarte" > <[EMAIL PROTECTED]> escreveu > > > > 2008/8/26 Elvio Barbalho <[EMAIL PROTECTED]>: > > > Thiago sua sugestão não funcionou pois estou trabalhando num sistema > > > Solaris, testei num Linux e funcionou perfeitamente. > > > > > > Jimmy sua sugestão funcionou perfeitamente, agora supondo que o > arquivo > > > tenha uma quantidade impar de linhas, seguindo sua lógica como eu > faria para > > > o aquivo ficar assim: > > > 1 > > > 2 > > > 3 > > > 4 > > > 5 > > > > > > 1-2 > > > 3-4 > > > 5-5 > > > > Continuo sentindo falta das tentativas realizadas pelos > > "perguntadores" para construção do conhecimento. > > > > last=$(wc -l arquivo | cut -d" " -f1) #Número da última linha do arquivo > > [ $((last%2)) -eq 1 ] && sed ${last}p arquivo # se última linha é > > ímpar, duplique-a > > > > 1 > > 2 > > 3 > > 4 > > 5 > > 5 > > > > O resto você já sabe ;) > > > > > > -- > > Fabiano Caixeta Duarte > > Especialista em Redes de Computadores > > Linux User #195299 > > Ribeirão Preto - SP > > > > > > > > - > 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: [EMAIL PROTECTED] > - > 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 > ___
Re: [shell-script] Re: substituir
q tal ? $ seq 10 | awk '!(NR % 2) { print x "-" $0 } NR % 2 { x = $0 }' 2008/8/27 voyeg3r <[EMAIL PROTECTED]>: > como seria a solução em awk? > > --- Em shell-script@yahoogrupos.com.br, "Fabiano Caixeta Duarte" > <[EMAIL PROTECTED]> escreveu >> >> 2008/8/26 Elvio Barbalho <[EMAIL PROTECTED]>: > >> > Thiago sua sugestão não funcionou pois estou trabalhando num sistema >> > Solaris, testei num Linux e funcionou perfeitamente. >> > >> > Jimmy sua sugestão funcionou perfeitamente, agora supondo que o > arquivo >> > tenha uma quantidade impar de linhas, seguindo sua lógica como eu > faria para >> > o aquivo ficar assim: >> > 1 >> > 2 >> > 3 >> > 4 >> > 5 >> > >> > 1-2 >> > 3-4 >> > 5-5 >> >> Continuo sentindo falta das tentativas realizadas pelos >> "perguntadores" para construção do conhecimento. >> >> last=$(wc -l arquivo | cut -d" " -f1) #Número da última linha do arquivo >> [ $((last%2)) -eq 1 ] && sed ${last}p arquivo # se última linha é >> ímpar, duplique-a >> >> 1 >> 2 >> 3 >> 4 >> 5 >> 5 >> >> O resto você já sabe ;) >> >> >> -- >> Fabiano Caixeta Duarte >> Especialista em Redes de Computadores >> Linux User #195299 >> Ribeirão Preto - SP >> > > -- Tiago B Peczenyj Linux User #405772 http://peczenyj.blogspot.com/ "what does not kill us makes us stronger"
Re: [shell-script] Re: substituir
___ não funcionou com quantidade ímpares. seq 9 | awk '!(NR % 2) { print x "-" $0 } NR % 2 { x = $0 }' 1-2 3-4 5-6 7-8 "comeu" o último caracter ___ On Wed, Aug 27, 2008 at 11:20:20AM -0300, Tiago Barcellos Peczenyj wrote: > q tal ? > $ seq 10 | awk '!(NR % 2) { print x "-" $0 } NR % 2 { x = $0 }' > > 2008/8/27 voyeg3r <[EMAIL PROTECTED]>: > > como seria a solução em awk? > > > > --- Em shell-script@yahoogrupos.com.br, "Fabiano Caixeta Duarte" > > <[EMAIL PROTECTED]> escreveu > >> > >> 2008/8/26 Elvio Barbalho <[EMAIL PROTECTED]>: > > > >> > Thiago sua sugestão não funcionou pois estou trabalhando num sistema > >> > Solaris, testei num Linux e funcionou perfeitamente. > >> > > >> > Jimmy sua sugestão funcionou perfeitamente, agora supondo que o > > arquivo > >> > tenha uma quantidade impar de linhas, seguindo sua lógica como eu > > faria para > >> > o aquivo ficar assim: > >> > 1 > >> > 2 > >> > 3 > >> > 4 > >> > 5 > >> > > >> > 1-2 > >> > 3-4 > >> > 5-5 > >> > >> Continuo sentindo falta das tentativas realizadas pelos > >> "perguntadores" para construção do conhecimento. > >> > >> last=$(wc -l arquivo | cut -d" " -f1) #Número da última linha do arquivo > >> [ $((last%2)) -eq 1 ] && sed ${last}p arquivo # se última linha é > >> ímpar, duplique-a > >> > >> 1 > >> 2 > >> 3 > >> 4 > >> 5 > >> 5 > >> > >> O resto você já sabe ;) > >> > >> > >> -- > >> Fabiano Caixeta Duarte > >> Especialista em Redes de Computadores > >> Linux User #195299 > >> Ribeirão Preto - SP > >> > > > > > > > > -- > Tiago B Peczenyj > Linux User #405772 > > http://peczenyj.blogspot.com/ > "what does not kill us makes us stronger" > > > > - > 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: [EMAIL PROTECTED] > - > 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 > ___
Re: [shell-script] Re: substituir
Ops... $ seq 11 | awk '!(NR % 2) { print "-"$0 } NR % 2 { printf "%s",$0 } END { print ""}' 1-2 3-4 5-6 7-8 9-10 11 sorry... não testei direito :$ 2008/8/27 jimmy <[EMAIL PROTECTED]>: > __ > > não funcionou com quantidade ímpares. > > seq 9 | awk '!(NR % 2) { print x "-" $0 } NR % 2 { x = $0 }' > 1-2 > 3-4 > 5-6 > 7-8 > > "comeu" o último caracter > __ > > On Wed, Aug 27, 2008 at 11:20:20AM -0300, Tiago Barcellos Peczenyj wrote: >> q tal ? >> $ seq 10 | awk '!(NR % 2) { print x "-" $0 } NR % 2 { x = $0 }' >> >> 2008/8/27 voyeg3r <[EMAIL PROTECTED]>: >> > como seria a solução em awk? >> > >> > --- Em shell-script@yahoogrupos.com.br, "Fabiano Caixeta Duarte" >> > <[EMAIL PROTECTED]> escreveu >> >> >> >> 2008/8/26 Elvio Barbalho <[EMAIL PROTECTED]>: >> > >> >> > Thiago sua sugestão não funcionou pois estou trabalhando num sistema >> >> > Solaris, testei num Linux e funcionou perfeitamente. >> >> > >> >> > Jimmy sua sugestão funcionou perfeitamente, agora supondo que o >> > arquivo >> >> > tenha uma quantidade impar de linhas, seguindo sua lógica como eu >> > faria para >> >> > o aquivo ficar assim: >> >> > 1 >> >> > 2 >> >> > 3 >> >> > 4 >> >> > 5 >> >> > >> >> > 1-2 >> >> > 3-4 >> >> > 5-5 >> >> >> >> Continuo sentindo falta das tentativas realizadas pelos >> >> "perguntadores" para construção do conhecimento. >> >> >> >> last=$(wc -l arquivo | cut -d" " -f1) #Número da última linha do >> >> arquivo >> >> [ $((last%2)) -eq 1 ] && sed ${last}p arquivo # se última linha é >> >> ímpar, duplique-a >> >> >> >> 1 >> >> 2 >> >> 3 >> >> 4 >> >> 5 >> >> 5 >> >> >> >> O resto você já sabe ;) >> >> >> >> >> >> -- >> >> Fabiano Caixeta Duarte >> >> Especialista em Redes de Computadores >> >> Linux User #195299 >> >> Ribeirão Preto - SP >> >> >> > >> > >> >> >> >> -- >> Tiago B Peczenyj >> Linux User #405772 >> >> http://peczenyj.blogspot.com/ >> "what does not kill us makes us stronger" >> >> >> >> -- >> 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: [EMAIL PROTECTED] >> -- >> 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 >> > __ > -- Tiago B Peczenyj Linux User #405772 http://peczenyj.blogspot.com/ "what does not kill us makes us stronger"
Re: [shell-script] Re: substituir
___ ficou legal. ___ On Wed, Aug 27, 2008 at 12:34:12PM -0300, Tiago Barcellos Peczenyj wrote: > Ops... > > $ seq 11 | awk '!(NR % 2) { print "-"$0 } NR % 2 { printf "%s",$0 } > END { print ""}' > 1-2 > 3-4 > 5-6 > 7-8 > 9-10 > 11 > > sorry... não testei direito :$ > > 2008/8/27 jimmy <[EMAIL PROTECTED]>: > > __ > > > > não funcionou com quantidade ímpares. > > > > seq 9 | awk '!(NR % 2) { print x "-" $0 } NR % 2 { x = $0 }' > > 1-2 > > 3-4 > > 5-6 > > 7-8 > > > > "comeu" o último caracter > > __ > > > > On Wed, Aug 27, 2008 at 11:20:20AM -0300, Tiago Barcellos Peczenyj wrote: > >> q tal ? > >> $ seq 10 | awk '!(NR % 2) { print x "-" $0 } NR % 2 { x = $0 }' > >> > >> 2008/8/27 voyeg3r <[EMAIL PROTECTED]>: > >> > como seria a solução em awk? > >> > > >> > --- Em shell-script@yahoogrupos.com.br, "Fabiano Caixeta Duarte" > >> > <[EMAIL PROTECTED]> escreveu > >> >> > >> >> 2008/8/26 Elvio Barbalho <[EMAIL PROTECTED]>: > >> > > >> >> > Thiago sua sugestão não funcionou pois estou trabalhando num sistema > >> >> > Solaris, testei num Linux e funcionou perfeitamente. > >> >> > > >> >> > Jimmy sua sugestão funcionou perfeitamente, agora supondo que o > >> > arquivo > >> >> > tenha uma quantidade impar de linhas, seguindo sua lógica como eu > >> > faria para > >> >> > o aquivo ficar assim: > >> >> > 1 > >> >> > 2 > >> >> > 3 > >> >> > 4 > >> >> > 5 > >> >> > > >> >> > 1-2 > >> >> > 3-4 > >> >> > 5-5 > >> >> > >> >> Continuo sentindo falta das tentativas realizadas pelos > >> >> "perguntadores" para construção do conhecimento. > >> >> > >> >> last=$(wc -l arquivo | cut -d" " -f1) #Número da última linha do > >> >> arquivo > >> >> [ $((last%2)) -eq 1 ] && sed ${last}p arquivo # se última linha é > >> >> ímpar, duplique-a > >> >> > >> >> 1 > >> >> 2 > >> >> 3 > >> >> 4 > >> >> 5 > >> >> 5 > >> >> > >> >> O resto você já sabe ;) > >> >> > >> >> > >> >> -- > >> >> Fabiano Caixeta Duarte > >> >> Especialista em Redes de Computadores > >> >> Linux User #195299 > >> >> Ribeirão Preto - SP > >> >> > >> > > >> > > >> > >> > >> > >> -- > >> Tiago B Peczenyj > >> Linux User #405772 > >> > >> http://peczenyj.blogspot.com/ > >> "what does not kill us makes us stronger" > >> > >> > >> > >> -- > >> 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: [EMAIL PROTECTED] > >> -- > >> 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 > >> > > __ > > > > > > -- > Tiago B Peczenyj > Linux User #405772 > > http://peczenyj.blogspot.com/ > "what does not kill us makes us stronger" > > > > - > 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: [EMAIL PROTECTED] > - > 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 > ___