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

0

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).

Acho que o que preciso fazer é encontrar e substituir todas as guias por quebras de linha (pode estar errado).

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

    
por Drewdavid 24.11.2012 / 00:49

3 respostas

2

No OS X, você precisa usar $'' para inserir \t ou \n e escapar \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.

    
por 27.11.2012 / 14:15
0

Você pode tentar usar uma expressão regular:

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

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

    
por 24.11.2012 / 01:25
0

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 substituí-lo.

Atualizar

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

    
por 24.11.2012 / 03:06