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: [EMAIL PROTECTED] ~]# ls -i teste.txt; cat teste.txt 2097218 teste.txt teste [EMAIL PROTECTED] ~]# ed -s teste.txt <<< $'s/e/3/g\nw\nq' [EMAIL PROTECTED] ~]# ls -i teste.txt; cat teste.txt 2097218 teste.txt t3st3 [EMAIL PROTECTED] ~]# vim +':s/3/e/g' +':wq' teste.txt [EMAIL PROTECTED] ~]# ls -i teste.txt; cat teste.txt 2097220 teste.txt teste [EMAIL PROTECTED] ~]# -- Flávio do Carmo Júnior On Nov 27, 2007 3:59 PM, mop <[EMAIL PROTECTED] 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: > ----------- > [EMAIL PROTECTED]/tmp# sed --version|grep ver > GNU sed version 4.1.5 > [EMAIL PROTECTED]/tmp# > > O SED: > ----------- > [EMAIL PROTECTED]/tmp$ cat a;ls -i a;sed -i 's/r/R/' a;cat a;ls -i a > pqrst > 578005 a > pqRst > 577986 a > [EMAIL PROTECTED]/tmp$ > ######## passou o arquivo para outro local, testado várias vezes > > O SHELL > ---------- > [EMAIL PROTECTED]/tmp$ cat a;ls -i a;echo pqZst >a;cat a;ls -i a > pqRst > 577986 a > pqZst > 577986 a > [EMAIL PROTECTED]/tmp$ > > O SHELL "appendando" > ---------- > [EMAIL PROTECTED]/tmp$ cat a;ls -i a;echo :pqZst >>a;cat a;ls -i a > pqZst > 577986 a > pqZst > :pqZst > 577986 a > [EMAIL PROTECTED]/tmp$ > > E viva o shell !!! > Qual o programa indicado para fazer substituições no local físico? > > ------------------------------ > On 11/27/07, Flavio Junior > > simples: > > > > [EMAIL PROTECTED] ~]# cat nada > > teste1 > > teste2 > > teste3 > > teste4 > > teste5 > > teste6 > > teste7 > > teste8 > > [EMAIL PROTECTED] ~]# sed -i.bkp '/teste5/iNOOOOOOOOOOOOOOOOVA > > LINHAAAAAAAAAAAAAAAAAAA' nada > > [EMAIL PROTECTED] ~]# cat nada > > teste1 > > teste2 > > teste3 > > teste4 > > NOOOOOOOOOOOOOOOOVA LINHAAAAAAAAAAAAAAAAAAA > > teste5 > > teste6 > > teste7 > > teste8 > > [EMAIL PROTECTED] ~]# sed -i.bkp '/teste5/aNOOOOOOOOOOOOOOOOVA > > LINHAAAAAAAAAAAAAAAAAAA' nada > > [EMAIL PROTECTED] ~]# cat nada > > teste1 > > teste2 > > teste3 > > teste4 > > NOOOOOOOOOOOOOOOOVA LINHAAAAAAAAAAAAAAAAAAA > > teste5 > > NOOOOOOOOOOOOOOOOVA LINHAAAAAAAAAAAAAAAAAAA > > teste6 > > teste7 > > teste8 > > [EMAIL PROTECTED] ~]# >
