Questão Como posso substituir dados delimitados por tabulações por quebras de linha?


Eu tenho muitos dados separados por tabulações, e isso significa que quando eu importo estou recebendo muitas colunas (muitas para o Google Drive e o OpenOffice).

Eu acho que o que eu preciso fazer é encontrar e substituir todas as abas com quebras de linha (pode estar errado).

* EDIT - Acabei descobrindo isso usando um método diferente. Obrigado a todos pela vossa ajuda. :)


0


origem


Talvez você possa responder sua própria pergunta, para que todos possamos nos beneficiar? - Jacob Jan Tuinstra


Respostas:


No OS X você tem que usar $'' inserir \t ou \n e fugir \n no padrão de substituição.

echo $'1\t2\n3\t4' | sed $'s/\t/\\\n/g'

Mas os linefeeds não separam linhas em arquivos TSV? Você também pode usar o TextEdit para substituir as guias por alguns outros caracteres, como ponto e vírgula.


2



Oi, preciso de um esclarecimento sobre isso. Qual seria o comando para conseguir isso? Obrigado pela ajuda. - Drewdavid
E sim, mas as planilhas estão interpretando as guias como colunas, e há muitas colunas para serem importadas e, portanto, estão sendo cortadas. - Drewdavid


Você pode tentar usar uma expressão regular:

sed 's/\t/\n/' input.txt > output.txt

Isso substituirá as guias \t com novas linhas \n.


0



Oi e obrigada. Isso é algo que devo fazer no Terminal? Obrigado :) - Drewdavid
Isso não funcionou como esperado. Como abaixo, exceto que somente o primeiro http foi alterado para hnnp, todo o resto do arquivo parece inalterado. Obrigado pela ajuda. - Drewdavid


Para expandir a resposta do root, você pode precisar adicionar o / g no final para fazer todos os eventos.

Você também pode gravá-lo no mesmo arquivo com um sinalizador de backup automático.

sed -i.orig 's/\t/\n/g' file.txt

O final / g fará com que ele acerte cada ocorrência em vez do primeiro por linha (se você precisar disso).

O -i.orig grava a alteração no mesmo arquivo depois de fazer um backup do original (neste caso file.txt.orig). Isso é apenas uma questão de preferência para mim, em vez de ter que renomear o original e o novo para ocupar o seu lugar.

Atualizar

Anexei uma captura de tela para mostrar que funciona para mim ... Você tem certeza de que o arquivo está delineado?

enter image description here


0



Oi, obrigado pela sua adição / recomendação. Como acima, isso é algo que devo realizar no Terminal? Obrigado vai deixar você saber como vai. :) - Drewdavid
Sim, isso seria feito no Terminal. E a .orig seria localizado no mesmo diretório que o arquivo de entrada com o qual você está trabalhando. - nerdwaller
Oi, isso não funcionou exatamente como planejado. Ele substituiu todos os caracteres "t" no arquivo de texto por "n" s, então meus URLs são "hnnp" por exemplo. Eu copiei e colei o código, apenas alterando o nome do arquivo. - Drewdavid
@Drewdavid Anexou uma imagem para mostrar que está funcionando. Talvez os códigos de linha não sejam baseados em unix, o que foi feito usando o arquivo? - nerdwaller
Obrigado, eu não mencionei claramente que estou usando o Terminal no Mac OS X. A resposta acima está tentando ajudar, mas ainda não cheguei lá. - Drewdavid