o etopylight estava quase certo:
tr -s ' \t' '\n'
porque a pergunta também é necessária para substituir as guias.
Eu tenho uma lista de palavras muito grande que foi danificada, talvez por saída incorreta de vim ou exaustão de memória?
Tudo na minha lista de palavras deve ser justificado à esquerda. Mas agora é assim:
Cat Dog
Soup Rat
Cass Audrey
Eu posso fazer um simples tr -d " "
para transformar isso em:
CatDog
SoupRat
CassAudrey
Mas isso não é o que eu quero. Eu quero as palavras certas justificadas em sua própria nova linha como esta:
Cat
Dog
Soup
Rat
Cass
Audrey
Eu não sei que tipo de espaço em branco separa as palavras justificadas à esquerda e à direita. Como me livrar de todos esses espaços enquanto preservo as palavras da mão direita usando tr, sed ou awk?
(As listas acima que eu digitei não parecem com o que quero dizer, espero que a pergunta seja auto-explicativa).
EDITAR:
Desculpe ... acho que essa foi uma pergunta meio idiota, na verdade! Eu acho que eu vejo o que estava acontecendo ... Eu estava usando o gato para passar pela longa lista de palavras. Cat trabalha muito mais rápido do que a nova informação poderia ser armazenada na tela. Então, parecia que algumas palavras estavam aparecendo justificadas à direita. Eu passei pelo mesmo arquivo mais lentamente com o vim e não havia palavras justificadas pelo direito. Tola, obrigada pelas respostas!
o etopylight estava quase certo:
tr -s ' \t' '\n'
porque a pergunta também é necessária para substituir as guias.
Basicamente, você poderia fazer isso no GNU sed
:
sed 's/\s\+/\n/g'
Lá vai você ...
Você deve poder usar
sed -e 's/[[:space:]]\{1,\}/\n/'
para substituir qualquer seqüência de um ou mais caracteres de espaço em branco (incluindo esquisitices como guias de alimentação e vertical) com uma única nova linha.
Você pode usar a opção -s
de tr
para espremer caracteres repetidos em um e substituí-lo em uma nova linha
tr -s " " "\n"
Se o gnu-grep estiver disponível,
grep -Po '\S+'
Tags awk sed tr whitespace text-formatting