Eu tenho um arquivo de texto simples chamado "exemplo".
Lendo com o comando terminal: cat example
Resultado:
abc cdef ghi jk lmnopq rst uv wxyz
Desejo converter (transformar) no seguinte formato: (saída esperada de cat example
)
abc
cdef
ghi
jk
lmnopq
rst
uv
wxyz
Como posso fazer isso através da linha de comando?
(Este é apenas um arquivo de exemplo, desejo converter a posição da palavra na coluna vertical)
command-line
text-processing
Pandya
fonte
fonte
Respostas:
Algumas escolhas:
O clássico, use
tr
:Usar
cut
Usar
sed
Usar
perl
Use o shell
fonte
sed
exemplo, eu precisava para adicionar um$
bash para chegar a substituir com uma nova linha real ou seja:sed $'s/ /\\\n/g' example
sed $'s/ /\\n/g'
Experimente o comando abaixo
OU
Exemplo:
Explicação:
RS (Record Seperator) é uma variável awk embutida. No primeiro comando, o valor fornecido para a variável separadora de registro é espaço. O awk interrompe a impressão sempre que encontrar um espaço.
No segundo comando, o valor dado à variável RS é espaço ou um novo caractere de linha. Este comando elimina a linha em branco extra exibida durante a execução do primeiro comando.
fonte
Você pode usar
xargs
,ou melhor
fonte
xargs -n 1 < example
poupa um gatinhoUsando um
perl
oneliner:Ele substituirá espaços e guias por "ENTER" (aka
\n
)fonte
Ninguém postou python, então aqui está isso:
Nós redirecionamos o arquivo de entrada para
python
o fluxo stdin do e lemos linha por linha. Cada linha é removida de sua nova linha à direita, dividida em palavras e depois reunida em uma sequência em que cada palavra é separada por nova linha. Isso é feito para garantir que uma palavra por linha e evitar a inserção de várias novas linhas, caso haja vários espaços ao lado de entre si. Eventualmente, terminamos com uma lista de strings, que é novamente unida em uma string maior e impressa no fluxo stdout. Que depois pode ser redirecionado para outro arquivo com> out.txt
redirecionamento.fonte
Semelhante ao 'tr' acima, mas com as adições:
Também funciona para guias
Converte vários espaços ou tabulações em 1 nova linha
fonte