Como concatenar pares de células; cada segunda célula para o primeiro

0

Como concatenar pares sucessivos de células em uma coluna, adicionando a segunda célula de cada par ao primeiro.

Por exemplo:

santhosh
kumar
sagar
sv
sai
deva

E o resultado deve ser:

santhoshkumar
sagarsv
saidevax
    
por sagar 28.02.2015 / 14:21

3 respostas

1

Se você tiver sed você pode fazer assim:

sed 'N;s/\r\?\n//' myfile.txt

Explicação: o sed lê o arquivo linha por linha. 'N' adiciona a próxima linha (isto é, linha 2 se estamos atualmente na linha 1) ao buffer, então precisamos remover a 'nova linha' que está entre as duas linhas que temos no buffer. O comando 's' substitui algum texto na linha (como especificado entre a primeira e a segunda barra) por outro texto (especificado entre a segunda e a terceira barra) - neste caso queremos substituir a linha que termina com nada.

Com fins de linha do tipo Unix, isso é feito removendo-se o avanço de linha '\ n', mas se for um documento do tipo Windows, o avanço de linha será precedido pelo retorno de carro '\ r'. Então \ r \? é 'opcional \ r' onde o ponto de interrogação que escapou indica que o caractere anterior pode ou não existir.

    
por 28.02.2015 / 17:09
0

Dada a tag gvim , suponho que você esteja usando o gvim ou vim editor. Experimente a macro:

:map q Jxjq

O J j coloca as duas linhas, deixando um espaço; o x remove esse espaço e o j move para a próxima linha. O q no final repete o processo; corresponde ao q após o comando :map .

Essa é uma macro vi da antiga escola; Eu não precisei aprender os recursos de macro vim mais extensos e capazes.

    
por 28.02.2015 / 21:23
0

No Vi / Vim você pode fazer algo assim:

:g/./j!

O que basicamente significa, fazer ( :g/ ) para cada linha não vazia ( . ) e associá-la à próxima sem adicionar espaços à direita ( j! )

Leia mais na ajuda

:h :g
:h :j
:h /.
    
por 01.03.2015 / 13:31

Tags