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 16:15:39 -0200

Hm..

Se eu entendi o que tu tentou demonstrar ali é que, o sed -i na real
cria uma nova entrada de diretorio no sistema de arquivos né ?

O que gera um novo i-node.

O proprio "vim" usa a tecnica no sed.. o que se mostrou mais rapido (o
sed) nos meus testes mesmo. Mas o "ed" (oh, o ed...) pode fazer o que
voce quer:

[root@bugsbunny ~]# ls -i teste.txt; cat teste.txt
2097218 teste.txt
teste
[root@bugsbunny ~]# ed -s teste.txt <<< $'s/e/3/g\nw\nq'
[root@bugsbunny ~]# ls -i teste.txt; cat teste.txt
2097218 teste.txt
t3st3
[root@bugsbunny ~]# vim +':s/3/e/g' +':wq' teste.txt
[root@bugsbunny ~]# ls -i teste.txt; cat teste.txt
2097220 teste.txt
teste
[root@bugsbunny ~]#


--


Flávio do Carmo Júnior


On Nov 27, 2007 3:59 PM, mop <mop2bky4mz5tyjwa8ersp7hrg5u9qn@... wrote:
>
>
>
>
>
>
> 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 ~]#
>  


reply via email to

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