Re: posso fazer um search/replace por mascara no vim ou na linha de comando ?
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 ?
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 ?
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 ?
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 ?
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 ?
(...) > :%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 ?
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 ?
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 ?
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 ?
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 ?
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 ?
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] > >