Como editar o conteúdo do arquivo no vi?

2

Eu tenho um arquivo de texto com o seguinte conteúdo (o arquivo real contém milhares de linhas)

abcd
xyas
sasss
jddks
asa
sasa
lkkkss
asasd

Eu quero a saída no formato a seguir.

abcd xyas sasss jddks
asa sasa lkkkss asasd

Como posso fazer isso?

    
por stany 11.09.2013 / 19:36

1 resposta

10

Se você quiser apenas unir todas as quatro linhas em uma, poderá fazê-lo com uma macro recursiva:

ggqaqqa4Jj@aq@a

Explicação:

  • gg vai para o início do arquivo
  • qaq limpar qualquer macro armazenada anteriormente no registro a
  • qa começa a gravar uma macro no registro a
  • 4J une 4 linhas em uma
  • j desce uma linha
  • @a tem a macro no registro a própria
  • q parar de gravar
  • @a chama a macro no registro a , que continuará trabalhando no arquivo até que seja feito.

Uma alternativa em Perl

perl -ni -e 'chomp;print $_, $.%4? " ":"\n"' your_file

Referência

por 11.09.2013 / 19:53

Tags