[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: trabalhando com linhas de arquivo ( e o sed -i ?)
From: |
Flavio Junior |
Subject: |
Re: [shell-script] Re: trabalhando com linhas de arquivo ( e o sed -i ?) |
Date: |
Tue, 27 Nov 2007 22:57:54 -0200 |
Parabens MOP :)
Show de bola os testes e a explicações...
Confesso que qdo vi a conclusão antes do decorrer do teste gelei os
ossos... Achei que o md5 tinha batido com o binario alterado :D (como
no caso daquele famoso pdf q demonstrou as colisoes do md5)...
Pra nao tomar bronca dos moderadores... Tai o teste com o awk:
lazlo:~# !strings
strings sed | grep command
add the script to the commands to be executed
add the contents of script-file to the commands to be executed
specify the desired line-wrap length for the `l' command
extra characters after command
missing command
command only uses one address
unterminated `s' command
unterminated `y' command
multiple `p' options to `s' command
multiple `g' options to `s' command
multiple number options to `s' command
number option to `s' command may not be zero
strings for `y' command are different lengths
unknown command: `%c'
invalid reference \%d on `s' command's RHS
lazlo:~# awk '{gsub(/command/,"agoraehminhavezFLAVIO"); print}' sed > sed.alt
lazlo:~# md5sum sed sed.alt
1fc6cd13e8a249ec91f7e449f588d6a8 sed
ecbebcb04d84a9e56c7763015a8956f5 sed.alt
lazlo:~# awk '{gsub(/agoraehminhavezFLAVIO/,"command"); print}'
sed.alt > sed.alt2
lazlo:~# md5sum sed sed.alt sed.alt2
1fc6cd13e8a249ec91f7e449f588d6a8 sed
ecbebcb04d84a9e56c7763015a8956f5 sed.alt
d34ee6e6c097876b76147d42d867ea82 sed.alt2
lazlo:~# strings sed.alt | grep command
lazlo:~# strings sed.alt | grep FLAVIO
add the script to the agoraehminhavezFLAVIOs to be executed
add the contents of script-file to the
agoraehminhavezFLAVIOs to be executed
specify the desired line-wrap length for the `l'
agoraehminhavezFLAVIO
extra characters after agoraehminhavezFLAVIO
missing agoraehminhavezFLAVIO
agoraehminhavezFLAVIO only uses one address
unterminated `s' agoraehminhavezFLAVIO
unterminated `y' agoraehminhavezFLAVIO
multiple `p' options to `s' agoraehminhavezFLAVIO
multiple `g' options to `s' agoraehminhavezFLAVIO
multiple number options to `s' agoraehminhavezFLAVIO
number option to `s' agoraehminhavezFLAVIO may not be zero
strings for `y' agoraehminhavezFLAVIO are different lengths
unknown agoraehminhavezFLAVIO: `%c'
invalid reference \%d on `s' agoraehminhavezFLAVIO's RHS
lazlo:~#
Resumindo:
Com awk o MD5 não bateu... talvez a forma que eu fiz não foi perfeita,
quem puder contribuir é bem vindo.
--
Flávio do Carmo Júnior
On Nov 27, 2007 10:06 PM, Bruno Gunter Fricke <gunter@...> wrote:
>
>
>
>
>
>
> Mop! Boa! Nunca tinha notado este detalhe... Agora, não tenho um nix para
> testar... que tal alguém online neste momento fazer o mesmo com o awk? Assim
> poderemos ter uma comparação beeeem razoável ;-)
>
> []'s
>
> Subject: [shell-script] Re: trabalhando com linhas de arquivo ( e o sed -i
> ?)
>
> Parece-me que o SED é bem tolerado como assunto na lista. :)
>
> Não lembro de uma forma de fazer uma substituição de string no local
> físico com as ferramentas comumente citadas aqui.
>
> Pelo que entedi o sed com a opção -i faria isso.
> "ls -i" mostra o inode do arquivo.
> Obs.: os resultados abaixo são em uma simples partição ext2, blocos de 4k.
> Qual a explicação????
>
> Do manual do sed:
> ------------
> -i[suffix], --in-place[=suffix]
>
> edit files in place (makes backup if extension supplied)
>
> VERSAO:
> -----------
> root@k7/tmp# sed --version|grep ver
> GNU sed version 4.1.5
> root@k7/tmp#
>
> O SED:
> -----------
> web@k7/tmp$ cat a;ls -i a;sed -i 's/r/R/' a;cat a;ls -i a
> pqrst
> 578005 a
> pqRst
> 577986 a
> web@k7/tmp$
> ######## passou o arquivo para outro local, testado várias vezes
>
> O SHELL
> ----------
> web@k7/tmp$ cat a;ls -i a;echo pqZst >a;cat a;ls -i a
> pqRst
> 577986 a
> pqZst
> 577986 a
> web@k7/tmp$
>
> O SHELL "appendando"
> ----------
> web@k7/tmp$ cat a;ls -i a;echo :pqZst >>a;cat a;ls -i a
> pqZst
> 577986 a
> pqZst
> :pqZst
> 577986 a
> web@k7/tmp$
>
> E viva o shell !!!
> Qual o programa indicado para fazer substituições no local físico?
>
> ------------------------------
> On 11/27/07, Flavio Junior
> > simples:
> >
> > [root@ideafix ~]# cat nada
> > teste1
> > teste2
> > teste3
> > teste4
> > teste5
> > teste6
> > teste7
> > teste8
> > [root@ideafix ~]# sed -i.bkp '/teste5/iNOOOOOOOOOOOOOOOOVA
> > LINHAAAAAAAAAAAAAAAAAAA' nada
> > [root@ideafix ~]# cat nada
> > teste1
> > teste2
> > teste3
> > teste4
> > NOOOOOOOOOOOOOOOOVA LINHAAAAAAAAAAAAAAAAAAA
> > teste5
> > teste6
> > teste7
> > teste8
> > [root@ideafix ~]# sed -i.bkp '/teste5/aNOOOOOOOOOOOOOOOOVA
> > LINHAAAAAAAAAAAAAAAAAAA' nada
> > [root@ideafix ~]# cat nada
> > teste1
> > teste2
> > teste3
> > teste4
> > NOOOOOOOOOOOOOOOOVA LINHAAAAAAAAAAAAAAAAAAA
> > teste5
> > NOOOOOOOOOOOOOOOOVA LINHAAAAAAAAAAAAAAAAAAA
> > teste6
> > teste7
> > teste8
> > [root@ideafix ~]#
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>