Re: [shell-script] Re: Minha contribuição de Feliz Ano novo

2010-01-17 Por tôpico Marcelo Salhab Brogliato
Olá Jeferson e Julio, neste linha: Tudo=$(sed 's/ //g;s/\([0-9]\)/\1\n/g' <<< $Tudo) sabemos que tudo o que sobra são números e, pelos meus testes, substituir [0-9] por . melhora 40% a performance (deste comando, não do todo). A explicação seria não ter que verificar se o digito está entre 0 e 9,

Re: [shell-script] Re: Minha contribuição de Feliz Ano novo

2010-01-17 Por tôpico Julio C. Neves
Falou Marcelo, logo após enviar para a lista o script, me ocorreu a mesma ideia, porém juntando as 2 linhas, e o prg ficaria assim: Tudo=$(seq $1 $2 | sed 's/ //g;s/\(.\)/\1\n/g') sort -n <(echo "$Tudo") | uniq -c | awk '{print $2" = "$1}' Mas o que me deixa idiotizado é o fato do seq ter sido ma

Re: [shell-script] Re: Minha contribuição de Feliz Ano novo

2010-01-17 Por tôpico Jeferson Santos
Opa! Deu diferença mesmo! Engraçado que apesar de não estarmos lidando com um scrip que necessariamente dependa da velocidade, as técnicas de otimização utilizadas aqui irão trazer ganhos em diversos outros scripts. O último script tinha esses tempos, de 1 à 10: real0m2.938s user0m2.49

[shell-script] Adicionar conteúdo em linha de arquiv o

2010-01-17 Por tôpico Jefferson Aredes
Fala galera, Estou com o seguinte problema: Tenho um arquivo com muitas linhas, eu procuro uma determinada string dentro desse arquivo, achando a string eu coloco no final da linha isso: 'DD.MM.'. Ex: Linha original: DT_ALTER POSITION (31:40) DATE EXTERNAL (10) Linha alterada: DT_ALTER

Re: [shell-script] Re: Minha contribuição de Feliz Ano novo

2010-01-17 Por tôpico Jeferson Santos
Pois é, julio, se eu falar de anilhas pro meu pai, a resposta vai ser a mesma...rs Essa ideia do seq -w é interessante, vou colocar como switch no script. Só pra gente fechar (até que alguem venha com mais uma otimização :-D ): Juntando tudo em apenas 2 linhas: real0m1.961s user0m1.712s

Re: [shell-script] Adicionar conteúdo em linha de a rquivo

2010-01-17 Por tôpico Jeferson Santos
use o sed, uma lista e um retrovisor sed "s/\(DT_ALTER POSITION(31:40) DATE EXTERNAL (10)\)/\1 DD\.MM\./g Coloque entre \( e \) a string desejada, depois substitua por \1 e o complemento desejado. Feito isso, o sed vai repetir o texto e adicionar o sufixo q vc deseja. 2010/1/17 Jefferso

[shell-script] Loop dentro de loop

2010-01-17 Por tôpico Jeferson Santos
Olá, Estou tentando evitar um loop dentro de loop, pois tenho 2 arquivos carros.txt: --- palio corsa vectra gol --- cores.txt --- branco verde preto cinza --- E eu queria a seguinte saída: palio branco palio verde palio preto palio cinza corsa branco corsa verde

Re: [shell-script] Loop dentro de loop

2010-01-17 Por tôpico Julio C. Neves
Expansão de chaves, meu amigo: $ echo {palio,corsa,vectra,gol}' '{branco,verde,branco,cinza} Abraços, Julio Cursos de Shell e Zenity em 2 fins de semana? - Em SP ligue (11)2125-4747; - Em DF ligue (61) 3223-3000; - Turmas fechadas em outras cidades ligue (21) 8112-9988. 2010/1/17 Jeferson Sant

Re: [shell-script] Adicionar conteúdo em linha de a rquivo

2010-01-17 Por tôpico Julio C. Neves
sed '/string/s/$/incremento/' arquivo Abraços, Julio Cursos de Shell e Zenity em 2 fins de semana? - Em SP ligue (11)2125-4747; - Em DF ligue (61) 3223-3000; - Turmas fechadas em outras cidades ligue (21) 8112-9988. 2010/1/17 Jefferson Aredes > > > Fala galera, > > Estou com o seguinte problem

Re: [shell-script] Re: Minha contribuição de Feliz Ano novo

2010-01-17 Por tôpico Marcelo Salhab Brogliato
Olá Jeferson, só um comentário sobre sua afirmação de que loops devem ser evitados. Por exemplo: seq 1 1000 for i in $(seq 1 1000); do echo $i; done o segundo é mais lento que o primeiro (fica mais notável se aumentarmos o 1000). Mas, até onde sei, o segundo irá executar 1000 vezes o programa ech

Re: [shell-script] Re: Minha contribuição de Feliz Ano novo

2010-01-17 Por tôpico Marcelo Salhab Brogliato
Hehehehehe! Grande Julio! Aprendi shell lá no seu bar, hehehe.. ;) Acho que a diferença vem do seguinte: No eval com echo, estamos executando um: echo {1..10}, que é o mesmo que echo 1 2 3 4 5 ... 10. Desta maneira, a expansão em chaves irá ter que gerar a string com esses números todos (q

Re: [shell-script] modificar arquivo em partes diferentes

2010-01-17 Por tôpico Vinicius Xavier
Olá Julio,   Eu fiz com esse comando   cat arquivo | sed '/<\/DocumentPropertie s>/G' | sed 's/^$/Exemplo< \/Title>/g' | sed '/<\/Menu>/G' | sed 's/^$/<\/Menu>/g'   Segue o conteúdo do arquivo:    ~ $ cat arquivo 7.10< /Version> Atualizac oes Actualiza ciones Updates< /Title>   Segue o resu

Re: [shell-script] Re: Minha contribuição de Feliz Ano novo

2010-01-17 Por tôpico Julio C. Neves
Fala Marcelo, o que vc explicou é perfeitamente compreensível e concordo totalmente contigo, porém a diferença de tempo entre a expansão de chaves e a execução do seq, para números não muito grandes (tipo 2000) é pequena. Para números pequenos, as chaves ganham e para números grandes o seq ganha (p