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

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

RES: [shell-script] Quebrar linha a cada X espaços...


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] Quebrar linha a cada X espaços...
Date: Fri, 17 Dec 2004 09:59:32 -0300

Aê pessoal, creio que as melhores soluções para este problema sejam:

Prompt> cat arq | xargs -n6
palavra1 palavra2 palavra3 palavra4 palavra5 palavra6
palavra7 palavra8 palavra9 palavra10 palavra11 palavra12

ou:

Prompt> cat arq | tr ' ' '\n' | paste - - - - - -
palavra1        palavra2        palavra3        palavra4        palavra5
palavra6
palavra7        palavra8        palavra9        palavra10       palavra11
palavra12

O separador default do paste é o <TAB> se quiser alterá-lo use a opção -d:

Prompt> cat arq | tr ' ' '\n' | paste -d " " - - - - - -
palavra1 palavra2 palavra3 palavra4 palavra5 palavra6
palavra7 palavra8 palavra9 palavra10 palavra11 palavra12


Julio Cezar Neves
- Gerente do Programa de Software Livre -
Tel:+55 21 2528-7070 / +55 21 8112-9988
Fax: +55 21 2528-7646
mailto:address@hidden


| -----Mensagem original-----
| De: MrBiTs [mailto:address@hidden]
| Enviada em: sexta-feira, 17 de dezembro de 2004 09:07
| Para: address@hidden
| Assunto: RE: [shell-script] Quebrar linha a cada X espaços...
| 
| 
| 
| <QUOTE> 
|     Tenho um arquivo.txt com N palavras, separadas por 
| espaço, em uma linha
| continua e longa. Como posso estar fazendo um script que 
| realize uma quebra
| de linha ou simule um <enter> a cada 6 espaços ou a cada 6 palavras e
| continue assim até o final da linha?
|     Exemplo:
|     palavra1 palavra2 palavra3 palavra4 palavra5 palavra6 palavra7...
| palavraN
|     executando o script ficaria assim
|     palavra1 palavra2 palavra3 palavra4 palavra5 palavra6
|     palavra7 palavra8 palavra9... palavraN
| </QUOTE>
| 
| Voce nao tem muito o habito de ler as mensagens passadas da 
| lista, nao é ?
| 
| A coisa de um mes atras, o Julio respondeu a uma duvida bem 
| parecida. Vou
| colar a mensagem dele aqui:
| 
| INICIO
| uma vírgula após o terceiro campo (é isso que vc queria, né?).
| Prompt> cat arq
| a       b       c       d
| e       f       g       h
| i       j       k       l
| Prompt> awk '{ sub (/$/, ",", $3); print $0 }' arq
| a b c, d
| e f g, h
| i j k, l
| FINAL
| 
| Acredito que voce possa utilizar a mesma logica para o seu 
| problema. Basta
| fazer as substituicoes necessarias, como por exemplo "," por 
| "\n", e $3 por
| $6. 
| 
| Fiz assim aqui:
| 
| [dfernandes@rimmon dfernandes]$ cat arq
| palavra1 palavra2 palavra3 palavra4 palavra5 palavra6 
| palavra7 palavra8
| palavra9 palavra10 palavra11 palavra12
| 
| [dfernandes@rimmon dfernandes]$ awk '{sub(/$/, "\n", $6) ; 
| print $0}' arq
| palavra1 palavra2 palavra3 palavra4 palavra5 palavra6
|  palavra7 palavra8 palavra9 palavra10 palavra11 palavra12
| 
| Faca as adaptacoes necessarias e vc chega la.
| 
| []'s
| 
| 
| 
| ---------------------------------------------------------------------
| 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
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 




reply via email to

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