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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: trabalhando com linhas de arquivo ( e o sed -i ?)


From: mop
Subject: Re: trabalhando com linhas de arquivo ( e o sed -i ?)
Date: Tue, 27 Nov 2007 15:59:21 -0200

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]