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

[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]
>
>
>  


reply via email to

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