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

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

Re: [shell-script] [OFF TOPPIC] substituir quebra de linha após caracter


From: China
Subject: Re: [shell-script] [OFF TOPPIC] substituir quebra de linha após caracter
Date: Mon, 30 May 2011 16:16:11 -0300

Pessoal, acho que não coloquei o problema de forma clara. O arquivo
contem zilhares de linhas, e não apenas uma linha. A linha que
coloquei no exemplo é apenas a primeira. O conjunto citado pelo colega
nessa mensagem acaba com todas as quebras de linha fazendo com que o
arquivo tenha apenas uma linha, e não é esse o objetivo. O objetivo é
eliminar as quebras de linha apenas após o sinal de =(equal), em todas
as linhas do arquivo.

As soluções que tentei sozinho também resultaram em algo semelhante,
com apenas uma linha...

Em 30 de maio de 2011 16:11, Cléoson Barreto
<address@hidden> escreveu:
>
>
>
> Olá!
>
> Esqueci de colocar um "g" no final de "...s/=//...". O comando ficaria
> assim:
> $ sed ':a;$!N;s/\n//g;ta; s/=0A/;/g; s/=//g' teste.txt
>
> id;username;email;firstname;lastname;idnumber;institution;department;phone1;phone2;city;url;icq;skype;aim;yahoo;msn;country;profile_field_Setor;profile_field_Telefone;profile_field_UF;profile_field_matricula;profile_field_cargo;profile_field_localizacao;profile_field_lotacao;profile_field_emailalternativo;
>
> --
> []'s
> Cléoson.
>
> Em 30 de maio de 2011 16:06, Cléoson Barreto
> <address@hidden>escreveu:
>
> > Olá!
> >
> > Acho que isso deve ajudar:
> >
> > $ cat teste.txt
> > id;username;email;firstname;lastname;idnumber;institution;department;phon=
> > e1;phone2;city;url;icq;skype;aim;yahoo;msn;country;profile_field_Setor;pr=
> > ofile_field_Telefone;profile_field_UF;profile_field_matricula;profile_fie=
> > ld_cargo;profile_field_localizacao;profile_field_lotacao;profile_field_em=
> > ailalternativo=0A=
> >
> > $ sed ':a;$!N;s/\n//g;ta;s/=//; s/=0A/;/g' teste.txt
> >
> > id;username;email;firstname;lastname;idnumber;institution;department;phone1;phone2;city;url;icq;skype;aim;yahoo;msn;country;profile_field_Setor;pr=ofile_field_Telefone;profile_field_UF;profile_field_matricula;profile_fie=ld_cargo;profile_field_localizacao;profile_field_lotacao;profile_field_em=ailalternativo;=
> >
> > Vi referência sobre isso aqui:
> > http://aurelio.net/sed/sed-HOWTO/sed-HOWTO-7.html#toc1
> >
> >
> > --
> > []'s
> > Cléoson.
> >
> >
> > Em 30 de maio de 2011 15:53, China <address@hidden> escreveu:
> >
> >>
> >>
> >> Caros;
> >>
> >>
> >> Tenho que trabalhar um arquivo separado pro ponto e vírgula para dar
> >> carga num banco de dados. Porém este arquivo está com um defeito, que
> >> é a quebra de linhas onde não deveria haver. Reparei que ANTES de cada
> >> quebra de linha tem um caracter =(equal), então pensei na
> >> possibilidade de usar o SED para a tarefa de eliminar o caracter = e
> >> retirar a quebra de linha. A estrutura está assim:
> >>
> >> id;username;email;firstname;lastname;idnumber;institution;department;phon=
> >>
> >> e1;phone2;city;url;icq;skype;aim;yahoo;msn;country;profile_field_Setor;pr=
> >>
> >> ofile_field_Telefone;profile_field_UF;profile_field_matricula;profile_fie=
> >>
> >> ld_cargo;profile_field_localizacao;profile_field_lotacao;profile_field_em=
> >>
> >> ailalternativo=0A=
> >>
> >> Reparem que algumas palavras estão separadas por um = seguido por uma
> >> quebra de linha, e que o =0A= é o fim da linha. No caso do =0A= basta
> >> mandar substituir por um ; (ponto e virgula), mas não encontrei uma
> >> forma de suprimir o = e a quebra de linha para que o resultado fisse a
> >> linha inteira, como deve ser o seguinte (não sei se o gmail vai
> >> quebrar as linhas, mas segue):
> >>
> >>
> >> id;username;email;firstname;lastname;idnumber;institution;department;phone1;phone2;city;url;icq;skype;aim;yahoo;msn;country;profile_field_Setor;profile_field_Telefone;profile_field_UF;profile_field_matricula;profile_field_cargo;profile_field_localizacao;profile_field_lotacao;profile_field_emailalternativo;
> >>
> >> Não encontrei nos vários exemplos de sed uma forma de fazer isso.
> >> Podem me ajudar?
> >>
> >> --
> >> @chinabhz
> >>
> >>
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 


--
--
@chinabhz


reply via email to

[Prev in Thread] Current Thread [Next in Thread]