Suponha que eu tenha um arquivo:
Arquivo1:
PAPER TEAM MANISH NISHA GARIMA JYOUTI ........etc
Arquivo2 Eu quero:
PAPER
TEAM
MANISH
NISHA
GARIMA
JYOUTI
Linhas para conversão de coluna de File1.
awk
sed
text-formatting
yisha
fonte
fonte
Respostas:
Usando
tr
, substitua cada caractere de espaço repetido () por um único caractere de nova linha (
\n
).Mas acho que você quer algo assim?
Com
awk
nós poderíamos fazer:Isso une cada mesma posição de número arquivado em e
END
imprime o resultado que seria a primeira linha na primeira coluna, a segunda linha na segunda coluna, etc. É claro que o arquivo de entrada está limitado ao tamanho da sua memória.fonte
Você pode simplesmente fazer isso através do grep. Por padrão, o grep imprimiria a correspondência em uma nova linha separada.
OU
fonte
grep
Você também pode usar o
fmt
comando:fonte
Com o GNU datamash :
fonte
datamash
parece ser a melhor ferramenta para a tarefa, mas fascinante quantas outras ferramentas podem ser usadas!Você também pode fazer isso usando
sed
:NOTA: Não lida com a situação em que as palavras contêm espaços.
fonte
Usando
awk
, definindo o separador de campo de saída (OFS
) como o separador de registro (linha) (RS
):fonte
Usando um
for
loop:fonte
Você também pode tentar usar
sed
Observe que estou usando
@
como separador para a operação de substituição. Isso também criará um arquivo de backup. Caso você não precise de um backup, remova o .bakfonte
Versão Python:
Este usos
<
redirecionamento em stdin de python deinput.txt
e gravaçõesoutput.txt
usando>
o redirecionamento. O liner em si lê todas as linhas destdin
uma lista de strings, onde todos os espaços são substituídos por novas linhas, e reconstruímos o texto inteiro usando a.join()
funçãoUma abordagem alternativa para evitar que vários espaços em série sejam substituídos por novas linhas é usar
.split()
para quebrar a linha na lista de palavras. Dessa forma, podemos garantir que cada palavra seja separada apenas por uma nova linhafonte
Usando
xargs
, (roubado da resposta de souravc ):Ou, se alguma reformatação menor for necessária, use
printf
seqüências de caracteres de formato, conforme necessário:fonte
Minha solução seria:
fonte
fonte