Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico Junior Polegato - Linux

Marcos Trazzini escreveu:

CARACA !!! Tem que mostrar isso pra um usuário do JANELÃO
Fico pensando, como será que um usuário do sistema citado faria para
resolver isso?
  
Cara, foi o Hamacker que fez a pergunta e ele mesmo criou o script. Só 
uma dica com sed para evitar todo esse script:


sed -iorig 
's///;s///' $1



;-)



[]'s
  Junior Polegato


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico Marcos Trazzini
CARACA !!! Tem que mostrar isso pra um usuário do JANELÃO

Fico pensando, como será que um usuário do sistema citado faria para
resolver isso?

2008/6/13 hamacker <[EMAIL PROTECTED]>:
> Tá certo que o que não ABUNDA, não espalha (ou algo parecido).
> Mas já tá bom pessoal. Já deu para criar um miniscript :
> #!/bin/bash
> ARQUIVO=$1
> sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' $ARQUIVO
>>$ARQUIVO.fix.1
> sed -e 's/\(X-Mozilla-Status:\)\ \(.\{8\}\)/\1\ /' $ARQUIVO.fix.1
>>$ARQUIVO.fix.2
> mv $ARQUIVO $ARQUIVO.ori
> mv $ARQUIVO.fix.2 $ARQUIVO
>
> [ -f $ARQUIVO.fix.1 ] rm -f $ARQUIVO.fix.1
> [ -f $ARQUIVO.fix.2 ] rm -f $ARQUIVO.fix.2
> [ -f $ARQUIVO.msf ] rm -f $ARQUIVO.msf
>
> Agora já estou no caminho de casa :)
>
> []'s  a todos.
>
>
> 2008/6/13 Allison Vollmann <[EMAIL PROTECTED]>:
>>
>> se for usar o sed e for alterar todos os arquivos do diretório ao invés de
>> usar o find da para fazer direto
>>
>> $ sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' $(ls)
>>
>> ou se tiver algum padrão no nome dos arquivos usa outra er simples
>> auhsuahsuahu
>>
>> sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' $(ls | egrep
>> ".txt$" )
>>
>>
>> Rafael Gomes Dantas escreveu:
>>
>> Eu ia propor algo parecido agora! XD
>>
>> On Fri, Jun 13, 2008 at 10:53 AM, Marcos Trazzini <[EMAIL PROTECTED]>
>> wrote:
>>>
>>> (...)
>>> > :%s/X-Mozilla-Status: .\{4\}/X-Mozilla-Status: /g
>>> >
>>> Ou para ser um pouco mais flexível:
>>>
>>> $ sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' arquivo
>>>
>>> Dá pra usar o find para "encontrar" (lógico, o que mais o find faria?)
>>> os arquivos e usar o "-exec" do find para chamar o sed e substituir
>>> tudo sem ter que abrir arquivo por arquivo.
>>>
>>> Inté
>>>
>>> --
>>> Marcos S. Trazzini => [EMAIL PROTECTED]
>>>
>>>
>>> --
>>> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
>>> with a subject of "unsubscribe". Trouble? Contact
>>> [EMAIL PROTECTED]
>>>
>>
>>
>> -- To UNSUBSCRIBE, email to
>> [EMAIL PROTECTED] with a subject of
>> "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
>



-- 
Marcos S. Trazzini => [EMAIL PROTECTED]


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico hamacker
Tá certo que o que não ABUNDA, não espalha (ou algo parecido).
Mas já tá bom pessoal. Já deu para criar um miniscript :
#!/bin/bash
ARQUIVO=$1
sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' $ARQUIVO
>$ARQUIVO.fix.1
sed -e 's/\(X-Mozilla-Status:\)\ \(.\{8\}\)/\1\ /' $ARQUIVO.fix.1
>$ARQUIVO.fix.2
mv $ARQUIVO $ARQUIVO.ori
mv $ARQUIVO.fix.2 $ARQUIVO

[ -f $ARQUIVO.fix.1 ] rm -f $ARQUIVO.fix.1
[ -f $ARQUIVO.fix.2 ] rm -f $ARQUIVO.fix.2
[ -f $ARQUIVO.msf ] rm -f $ARQUIVO.msf

Agora já estou no caminho de casa :)

[]'s  a todos.


2008/6/13 Allison Vollmann <[EMAIL PROTECTED]>:

>  se for usar o sed e for alterar todos os arquivos do diretório ao invés de
> usar o find da para fazer direto
>
> $ sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' $(ls)
>
> ou se tiver algum padrão no nome dos arquivos usa outra er simples
> auhsuahsuahu
>
> sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' $(ls | egrep ".txt$"
> )
>
>
> Rafael Gomes Dantas escreveu:
>
> Eu ia propor algo parecido agora! XD
>
> On Fri, Jun 13, 2008 at 10:53 AM, Marcos Trazzini <[EMAIL PROTECTED]>
> wrote:
>
>> (...)
>> > :%s/X-Mozilla-Status: .\{4\}/X-Mozilla-Status: /g
>> >
>>  Ou para ser um pouco mais flexível:
>>
>> $ sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' arquivo
>>
>> Dá pra usar o find para "encontrar" (lógico, o que mais o find faria?)
>> os arquivos e usar o "-exec" do find para chamar o sed e substituir
>> tudo sem ter que abrir arquivo por arquivo.
>>
>> Inté
>>
>> --
>> Marcos S. Trazzini => [EMAIL PROTECTED]
>>
>>
>> --
>> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
>> with a subject of "unsubscribe". Trouble? Contact
>> [EMAIL PROTECTED]
>>
>>
>
>  -- To UNSUBSCRIBE, email to
> [EMAIL PROTECTED] with a subject of
> "unsubscribe". Trouble? Contact [EMAIL PROTECTED]


Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico Allison Vollmann




se for usar o sed e for alterar todos os arquivos do diretório ao invés
de usar o find da para fazer direto

$ sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' $(ls)

ou se tiver algum padrão no nome dos arquivos usa outra er simples
auhsuahsuahu

sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' $(ls | egrep
".txt$" )


Rafael Gomes Dantas escreveu:
Eu ia propor algo parecido agora! XD
  
  On Fri, Jun 13, 2008 at 10:53 AM, Marcos
Trazzini <[EMAIL PROTECTED]> wrote:
  (...)
> :%s/X-Mozilla-Status:
.\{4\}/X-Mozilla-Status: /g
>

Ou para ser um pouco mais flexível:

$ sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' arquivo

Dá pra usar o find para "encontrar" (lógico, o que mais o find faria?)
os arquivos e usar o "-exec" do find para chamar o sed e substituir
tudo sem ter que abrir arquivo por arquivo.

Inté

--
Marcos S. Trazzini => [EMAIL PROTECTED]




--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



  
  
  






-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico Rafael Gomes Dantas
Eu ia propor algo parecido agora! XD

On Fri, Jun 13, 2008 at 10:53 AM, Marcos Trazzini <[EMAIL PROTECTED]>
wrote:

> (...)
> > :%s/X-Mozilla-Status: .\{4\}/X-Mozilla-Status: /g
> >
> Ou para ser um pouco mais flexível:
>
> $ sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' arquivo
>
> Dá pra usar o find para "encontrar" (lógico, o que mais o find faria?)
> os arquivos e usar o "-exec" do find para chamar o sed e substituir
> tudo sem ter que abrir arquivo por arquivo.
>
> Inté
>
> --
> Marcos S. Trazzini => [EMAIL PROTECTED]
>
>
> --
> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
> with a subject of "unsubscribe". Trouble? Contact
> [EMAIL PROTECTED]
>
>


Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico Marcos Trazzini
(...)
> :%s/X-Mozilla-Status: .\{4\}/X-Mozilla-Status: /g
>
Ou para ser um pouco mais flexível:

$ sed -e 's/\(X-Mozilla-Status:\)\ \(.\{4\}\)/\1\ /' arquivo

Dá pra usar o find para "encontrar" (lógico, o que mais o find faria?)
os arquivos e usar o "-exec" do find para chamar o sed e substituir
tudo sem ter que abrir arquivo por arquivo.

Inté

-- 
Marcos S. Trazzini => [EMAIL PROTECTED]


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico Allison Vollmann

Ou Então simplificando o que o junior disse:

:%s/X-Mozilla-Status: .\{4\}/X-Mozilla-Status: /g

detalhe só use o (^) se a string sempre estiver no inicio da linha

Junior Polegato - Linux escreveu:

hamacker escreveu:

[...]
"X-Mozilla-Status: "
por
"X-Mozilla-Status: "
Qualquer ajuda será bem vinda.
  


Olá,

  Use:

s/^X-Mozilla-Status: /X-Mozilla-Status: /

e

s/^X-Mozilla-Status2: /X-Mozilla-Status2: /



[]'s
  Junior Polegato





--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico Junior Polegato - Linux

hamacker escreveu:

[...]
"X-Mozilla-Status: "
por
"X-Mozilla-Status: "
Qualquer ajuda será bem vinda.
  


Olá,

  Use:

s/^X-Mozilla-Status: /X-Mozilla-Status: /

e

s/^X-Mozilla-Status2: /X-Mozilla-Status2: /



[]'s
  Junior Polegato


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico Rodrigo Escobar
Opa,

Então..
Tenta isso aqui depois segue o mesmo modelo pro debaixo:

:%s /Status: \.*\S\S\S\S/Status: /gc

abs


2008/6/13 hamacker <[EMAIL PROTECTED]>:

> O problema é que não é sempre "100b", entendeu ?
> é sempre 4 digitos, mas nem sempre os mesmos.
>
>
> 2008/6/13 Rodrigo Escobar <[EMAIL PROTECTED]>:
>
>>
>> Se ele não tiver um padrão voce pode colocar a ocorrência inteira tipo
>>
>> :% /"-Status: 100b"/"-Status: "/gc
>>
>> alguma coisa assim sacou ?
>>
>> espero que vc consiga ai!
>>
>>
>> 2008/6/13 Rodrigo Escobar <[EMAIL PROTECTED]>:
>>
>> Opa,
>>>
>>> cara.. por acaso os valores que ele apresenta após o X-Mozilla-Status:
>>> são padrão.. por exemplo é sempre o mesmo valor, ou ele altera?
>>>
>>> Porque se for o mesmo voce pode fazer tranquilamente com o sed dentro do
>>> vim com o seguinte comando
>>>
>>> :%s /string a ser procurada/string para ser substituida/gc
>>>
>>> g - Global para enquadrar o arquivo inteiro
>>> c - Confirmação de alterações
>>>
>>> acho que já da pra clarear um pouco aí. O que vai te facilitar é
>>> encontrar um padrão dentro do arquivo para que fique mais facil vc fazer uma
>>> alteração global.
>>>
>>> Se no caso, todo arquivo estiver assim vai ficar fácil..
>>>
>>> X-Mozilla-Status: 100b
>>> X-Mozilla-Status2: 1000
>>>
>>> :%s /100b//gc
>>>
>>> e o mesmo para o que está abaixo, agora se for diferente vai ter que
>>> achar um padrão.. qualquer coisa manda aí..
>>>
>>> abracos
>>>
>>> 2008/6/13 hamacker <[EMAIL PROTECTED]>:
>>>
>>> Um usuário antes de ser sair da empresa, resolveu configurar apagar as
 mensagens armazenada no thunderbird, depois esvaziou-na.

 Fui chamado para ver se era possivel recupera-la, felizmente o usuário
 em questão não usou a ferramenta de compactação que está no
 thunderbird e com isso as mensagens estão visiveis através dum editor
 como o 'vim', porém não são visiveis dentro do thunderbird, a razão
 disso é que o arquivo de mensagens do thunderbird acrescenta no
 cabecalho de cada mensagem a seguinte informação :

 X-Mozilla-Status: 100b
 X-Mozilla-Status2: 1000

 e dependendo o numero indicado no status a mensagem não aparece mesmo,
 mas se eu alterar para :

 X-Mozilla-Status: 
 X-Mozilla-Status2: 

 Ela novamente reaparece na lista.
 Esses números de status são sempre 4 e 8 digitos e preciso alterar não
 importa a combinacao sempre  para  e 
 Gostaria de saber se alguem sabe como posso fazer um search/replace
 por mascara no vim ou na linha de comando, algo como trocar todas as
 ocorrências :

 "X-Mozilla-Status: "

 por

 "X-Mozilla-Status: "

 Qualquer ajuda será bem vinda.

 []'s


 --
 To UNSUBSCRIBE, email to
 [EMAIL PROTECTED]
 with a subject of "unsubscribe". Trouble? Contact
 [EMAIL PROTECTED]


>>>
>>
>


Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico hamacker
O problema é que não é sempre "100b", entendeu ?
é sempre 4 digitos, mas nem sempre os mesmos.

2008/6/13 Rodrigo Escobar <[EMAIL PROTECTED]>:

>
> Se ele não tiver um padrão voce pode colocar a ocorrência inteira tipo
>
> :% /"-Status: 100b"/"-Status: "/gc
>
> alguma coisa assim sacou ?
>
> espero que vc consiga ai!
>
>
> 2008/6/13 Rodrigo Escobar <[EMAIL PROTECTED]>:
>
> Opa,
>>
>> cara.. por acaso os valores que ele apresenta após o X-Mozilla-Status: são
>> padrão.. por exemplo é sempre o mesmo valor, ou ele altera?
>>
>> Porque se for o mesmo voce pode fazer tranquilamente com o sed dentro do
>> vim com o seguinte comando
>>
>> :%s /string a ser procurada/string para ser substituida/gc
>>
>> g - Global para enquadrar o arquivo inteiro
>> c - Confirmação de alterações
>>
>> acho que já da pra clarear um pouco aí. O que vai te facilitar é encontrar
>> um padrão dentro do arquivo para que fique mais facil vc fazer uma alteração
>> global.
>>
>> Se no caso, todo arquivo estiver assim vai ficar fácil..
>>
>> X-Mozilla-Status: 100b
>> X-Mozilla-Status2: 1000
>>
>> :%s /100b//gc
>>
>> e o mesmo para o que está abaixo, agora se for diferente vai ter que achar
>> um padrão.. qualquer coisa manda aí..
>>
>> abracos
>>
>> 2008/6/13 hamacker <[EMAIL PROTECTED]>:
>>
>> Um usuário antes de ser sair da empresa, resolveu configurar apagar as
>>> mensagens armazenada no thunderbird, depois esvaziou-na.
>>>
>>> Fui chamado para ver se era possivel recupera-la, felizmente o usuário
>>> em questão não usou a ferramenta de compactação que está no
>>> thunderbird e com isso as mensagens estão visiveis através dum editor
>>> como o 'vim', porém não são visiveis dentro do thunderbird, a razão
>>> disso é que o arquivo de mensagens do thunderbird acrescenta no
>>> cabecalho de cada mensagem a seguinte informação :
>>>
>>> X-Mozilla-Status: 100b
>>> X-Mozilla-Status2: 1000
>>>
>>> e dependendo o numero indicado no status a mensagem não aparece mesmo,
>>> mas se eu alterar para :
>>>
>>> X-Mozilla-Status: 
>>> X-Mozilla-Status2: 
>>>
>>> Ela novamente reaparece na lista.
>>> Esses números de status são sempre 4 e 8 digitos e preciso alterar não
>>> importa a combinacao sempre  para  e 
>>> Gostaria de saber se alguem sabe como posso fazer um search/replace
>>> por mascara no vim ou na linha de comando, algo como trocar todas as
>>> ocorrências :
>>>
>>> "X-Mozilla-Status: "
>>>
>>> por
>>>
>>> "X-Mozilla-Status: "
>>>
>>> Qualquer ajuda será bem vinda.
>>>
>>> []'s
>>>
>>>
>>> --
>>> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
>>> with a subject of "unsubscribe". Trouble? Contact
>>> [EMAIL PROTECTED]
>>>
>>>
>>
>


Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico Rodrigo Escobar
Se ele não tiver um padrão voce pode colocar a ocorrência inteira tipo

:% /"-Status: 100b"/"-Status: "/gc

alguma coisa assim sacou ?

espero que vc consiga ai!


2008/6/13 Rodrigo Escobar <[EMAIL PROTECTED]>:

> Opa,
>
> cara.. por acaso os valores que ele apresenta após o X-Mozilla-Status: são
> padrão.. por exemplo é sempre o mesmo valor, ou ele altera?
>
> Porque se for o mesmo voce pode fazer tranquilamente com o sed dentro do
> vim com o seguinte comando
>
> :%s /string a ser procurada/string para ser substituida/gc
>
> g - Global para enquadrar o arquivo inteiro
> c - Confirmação de alterações
>
> acho que já da pra clarear um pouco aí. O que vai te facilitar é encontrar
> um padrão dentro do arquivo para que fique mais facil vc fazer uma alteração
> global.
>
> Se no caso, todo arquivo estiver assim vai ficar fácil..
>
> X-Mozilla-Status: 100b
> X-Mozilla-Status2: 1000
>
> :%s /100b//gc
>
> e o mesmo para o que está abaixo, agora se for diferente vai ter que achar
> um padrão.. qualquer coisa manda aí..
>
> abracos
>
> 2008/6/13 hamacker <[EMAIL PROTECTED]>:
>
> Um usuário antes de ser sair da empresa, resolveu configurar apagar as
>> mensagens armazenada no thunderbird, depois esvaziou-na.
>>
>> Fui chamado para ver se era possivel recupera-la, felizmente o usuário
>> em questão não usou a ferramenta de compactação que está no
>> thunderbird e com isso as mensagens estão visiveis através dum editor
>> como o 'vim', porém não são visiveis dentro do thunderbird, a razão
>> disso é que o arquivo de mensagens do thunderbird acrescenta no
>> cabecalho de cada mensagem a seguinte informação :
>>
>> X-Mozilla-Status: 100b
>> X-Mozilla-Status2: 1000
>>
>> e dependendo o numero indicado no status a mensagem não aparece mesmo,
>> mas se eu alterar para :
>>
>> X-Mozilla-Status: 
>> X-Mozilla-Status2: 
>>
>> Ela novamente reaparece na lista.
>> Esses números de status são sempre 4 e 8 digitos e preciso alterar não
>> importa a combinacao sempre  para  e 
>> Gostaria de saber se alguem sabe como posso fazer um search/replace
>> por mascara no vim ou na linha de comando, algo como trocar todas as
>> ocorrências :
>>
>> "X-Mozilla-Status: "
>>
>> por
>>
>> "X-Mozilla-Status: "
>>
>> Qualquer ajuda será bem vinda.
>>
>> []'s
>>
>>
>> --
>> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
>> with a subject of "unsubscribe". Trouble? Contact
>> [EMAIL PROTECTED]
>>
>>
>


Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?

2008-06-13 Por tôpico Rodrigo Escobar
Opa,

cara.. por acaso os valores que ele apresenta após o X-Mozilla-Status: são
padrão.. por exemplo é sempre o mesmo valor, ou ele altera?

Porque se for o mesmo voce pode fazer tranquilamente com o sed dentro do vim
com o seguinte comando

:%s /string a ser procurada/string para ser substituida/gc

g - Global para enquadrar o arquivo inteiro
c - Confirmação de alterações

acho que já da pra clarear um pouco aí. O que vai te facilitar é encontrar
um padrão dentro do arquivo para que fique mais facil vc fazer uma alteração
global.

Se no caso, todo arquivo estiver assim vai ficar fácil..

X-Mozilla-Status: 100b
X-Mozilla-Status2: 1000

:%s /100b//gc

e o mesmo para o que está abaixo, agora se for diferente vai ter que achar
um padrão.. qualquer coisa manda aí..

abracos

2008/6/13 hamacker <[EMAIL PROTECTED]>:

> Um usuário antes de ser sair da empresa, resolveu configurar apagar as
> mensagens armazenada no thunderbird, depois esvaziou-na.
>
> Fui chamado para ver se era possivel recupera-la, felizmente o usuário
> em questão não usou a ferramenta de compactação que está no
> thunderbird e com isso as mensagens estão visiveis através dum editor
> como o 'vim', porém não são visiveis dentro do thunderbird, a razão
> disso é que o arquivo de mensagens do thunderbird acrescenta no
> cabecalho de cada mensagem a seguinte informação :
>
> X-Mozilla-Status: 100b
> X-Mozilla-Status2: 1000
>
> e dependendo o numero indicado no status a mensagem não aparece mesmo,
> mas se eu alterar para :
>
> X-Mozilla-Status: 
> X-Mozilla-Status2: 
>
> Ela novamente reaparece na lista.
> Esses números de status são sempre 4 e 8 digitos e preciso alterar não
> importa a combinacao sempre  para  e 
> Gostaria de saber se alguem sabe como posso fazer um search/replace
> por mascara no vim ou na linha de comando, algo como trocar todas as
> ocorrências :
>
> "X-Mozilla-Status: "
>
> por
>
> "X-Mozilla-Status: "
>
> Qualquer ajuda será bem vinda.
>
> []'s
>
>
> --
> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
> with a subject of "unsubscribe". Trouble? Contact
> [EMAIL PROTECTED]
>
>