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] ~]#

Responder a