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

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

Re: [shell-script] Re: Transformar blocos de um texto em uma linha


From: Guilherme Gall
Subject: Re: [shell-script] Re: Transformar blocos de um texto em uma linha
Date: Fri, 6 Jun 2008 16:27:31 -0300

Lembrando que o conteúdo de teste.txt é

gmgall@giga08:~$ cat -vet teste.txt
TRR$
000000002$

E que o conteúdo de teste2.txt é TRR000000002, mas que ao ser listado
retorna o resultado estranho:

gmgall@giga08:~$ cat -vet teste2.txt
gmgall@giga08:~$ l@giga08:~$

[]'s

Guilherme M Gall

2008/6/6 Flavio Junior <address@hidden>:
> Guilherme,
>
> Posta aqui pra gente a saida do comando:
>
> cat -vet teste.txt
>
> Pode ser que teu arquivo nao tenha um "\n"...
>
> --
>
> Flavio do Carmo Junior
>
> 2008/6/6 Guilherme Gall <address@hidden>:
>> Flávio, vê se você pode me ajudar.
>>
>> Tentei fazer aqui o que você sugeriu, mas veja o que acontece (vou
>> colar com prompt e tudo):
>>
>> gmgall@giga08:~$ cat teste.txt
>> TRR
>> 000000002
>> gmgall@giga08:~$ tr -d '\n' < teste.txt
>> gmgall@giga08:~$ l@giga08:~$
>>
>> O comando foi feito exatamente como você descreveu, mas por alguma
>> razão recebi o texto de meu próprio prompt truncado como resposta.
>>
>> Redirecionando para um arquivo e listando seu conteúdo com o cat
>> acontece a mesma coisa:
>>
>> gmgall@giga08:~$ cat teste.txt | tr -d '\n' > teste2.txt
>> gmgall@giga08:~$ cat teste2.txt
>> gmgall@giga08:~$ l@giga08:~$
>>
>> Engraçado é que abrindo o arquivo teste2.txt em um editor de texto a
>> resposta está lá como deveria estar (TRR000000002).
>>
>> Usando o comando file ele diz que o arquivo não tem terminadores de linha.
>>
>> gmgall@giga08:~$ file teste2.txt
>> teste2.txt: ASCII text, with no line terminators
>>
>> Seria isso (a falta de terminadores de linha) que está causando a
>> resposta estranha no prompt? Não tenho nenhum problema parecido com o
>> do Eduardo para resolver, mas já tive esse problema outras vezes e
>> queria descobrir o motivo.
>>
>> Obrigado,
>>
>> Guilherme M Gall
>>
>> 2008/6/6 Flavio Junior <address@hidden>:
>>
>>> Eduardo, boa tarde...
>>>
>>> $ é um metacaracter que indica fim-de-linha (EOL), mas não é realmente
>>> um conteudo no arquivo.
>>>
>>> No teu caso, teria que trocar o "\n" (de new-line).
>>>
>>> Podes fazer usando o tr
>>>
>>> $ tr -d '\n' < arquivo
>>>
>>> -d = delete, ou seja, apagar os \n, vai transformar tudo em uma linha só.
>>>
>>> --
>>>
>>> Flavio do Carmo Junior aka waKKu
>>>
>>> 2008/6/6 Eduardo de Paula <address@hidden>:
>>>> Boa tarde turma...
>>>>
>>>> Aproveitando a tread...
>>>>
>>>> tenho uma duvida.
>>>>
>>>> com um arquivo assim:
>>>>
>>>> TRR
>>>> 000002
>>>>
>>>> como fazer usando sed para juntar as duas linhas?
>>>>
>>>> TRR000002
>>>>
>>>> sed 's/TRR$/TRR/g' nao funfa pq? Não é só tirar a quebra de linha
>>>> depois de TRR?
>>>>
>>>> Obrigado.
>>>>
>>>> --- Em address@hidden, "Flavio Junior" <billpp@...>
>>>> escreveu
>>>>
>>>>>
>>>>> Ta um pouco confuso a ideia, mas tenta isso:
>>>>>
>>>>> # tr '\n' ';' < txt | sed 's/;;/\n/g'
>>>>>
>>>>> Ve se ajuda.
>>>>> Eu to entendendo que entre um dado7 e o novo Bloco tem uma linha em
>>>> branco.
>>>>>
>>>>> --
>>>>>
>>>>> Flávio do Carmo Júnior aka waKKu
>>>>>
>>>>>
>>>>> 2008/6/6 Petry <petrybr@...>:
>>>>> > Não...
>>>>> >
>>>>> > preciso pegar o numero do bloco no ***** Bloco X
>>>>> >
>>>>> > o X eh letra ou numero, e tens linhas onde o A é '
>>>>> >
>>>>> > dado3 , dado4 e dado6 nao tem ' '
>>>>> >
>>>>> > mas soh deixando cada bloco numa linha separada por ; ja dava pra
>>>> trabalhar
>>>>> > melhor no excel
>>>>> >
>>>>> > tipo
>>>>> > cat txt | sed '/Bloco/,/dado7/ { $ s/$/;}
>>>>> >
>>>>> > algo nesse estilo, da linha com Bloco até a linha com dado7, onde
>>>> tiver
>>>>> > final de linha ($) substituir por ;
>>>>> >
>>>>> > Att.,
>>>>> > JP
>>>>> >
>>>>> > 2008/6/6 Flavio Junior <billpp@...>:
>>>>> >
>>>>> >> lazlo:~# cat txt
>>>>> >> *********** Bloco 1
>>>>> >> dado1 'XXXXXXXXXX'H -- "'AAAAAAA" --,
>>>>> >> dado2 'AAAAAAAAA'H -- "XXXXXXXXXX" --,
>>>>> >> dado3 XX,
>>>>> >> dado4 XX,
>>>>> >> dado5 'XXXXXXXXXXXXXX'H -- "AAAAAA" --,
>>>>> >> dado6 XX,
>>>>> >> dado7 'XXXXXXXXXX'H -- "AAAAA" --,
>>>>> >> lazlo:~# grep -Eo 'X+' txt | paste -sd\;
>>>>> >> XXXXXXXXXX;XXXXXXXXXX;XX;XX;XXXXXXXXXXXXXX;XX;XXXXXXXXXX
>>>>> >> lazlo:~#
>>>>> >>
>>>>> >> seria isso?
>>>>> >>
>>>>> >> --
>>>>> >>
>>>>> >> Flávio do Carmo Junior aka waKKu
>>>>> >>
>>>>> >> 2008/6/6 Petry <petrybr@... <petrybr%40gmail.com>>:
>>>>> >>
>>>>> >> > Senhores,
>>>>> >> >
>>>>> >> > Tenho um arquivo onde blocos se repetem do tipo:
>>>>> >> >
>>>>> >> > *********** Bloco 1
>>>>> >> > dado1 'XXXXXXXXXX'H -- "'AAAAAAA" --,
>>>>> >> > dado2 'AAAAAAAAA'H -- "XXXXXXXXXX" --,
>>>>> >> > dado3 XX,
>>>>> >> > dado4 XX,
>>>>> >> > dado5 'XXXXXXXXXXXXXX'H -- "AAAAAA" --,
>>>>> >> > dado6 XX,
>>>>> >> > dado7 'XXXXXXXXXX'H -- "AAAAA" --,
>>>>> >> >
>>>>> >> > *********** Bloco 2
>>>>> >> > ( e tudo se repete.....)
>>>>> >> >
>>>>> >> > o que preciso é deixar os XXXX em uma linha separados por ; para
>>>>> >> > exportar
>>>>> >> > pro excel...
>>>>> >> >
>>>>> >> > 1;XXXXXXXXXX;XXXXXXXXX;XX;XX;XXXXXXXXXXX;XX;XXXXXXX
>>>>> >> > 2;XXXXXXXXXX;XXXXXXXXX;XX;XX;XXXXXXXXXXX;XX;XXXXXXX
>>>>> >> > (...)
>>>>> >> >
>>>>> >> > Usando o SED estou recebendo command garbled :(
>>>>> >> >
>>>>> >> > Alguma sugestão de como posso fazer?
>>>>> >> >
>>>>> >> > Att.,
>>>>> >> > JP
>>>>> >> >
>>>>> >> > [As partes desta mensagem que não continham texto foram removidas]
>>>>> >> >
>>>>> >> >
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >
>>>>> > [As partes desta mensagem que não continham texto foram removidas]
>>>>> >
>>>>> >
>>>>>
>>>>
>>>>
>>>
>>> ------------------------------------
>>>
>>> ----------------------------------------------------------
>>> Esta lista não admite a abordagem de outras liguagens de programação, como
>>> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
>>> aviso.
>>> ----------------------------------------------------------
>>> Sair da lista: address@hidden
>>> ----------------------------------------------------------
>>> Esta lista é moderada de acordo com o previsto em
>>> http://www.listas-discussao.cjb.net
>>> ----------------------------------------------------------
>>> Servidor Newsgroup da lista: news.gmane.org
>>> Grupo: gmane.org.user-groups.programming.shell.brazil
>>>
>>> Links do Yahoo! Grupos
>>>
>>>
>>>
>>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>


reply via email to

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