Eu tenho um arquivo .txt com números ordenados como este (na mesma linha):
106849_01373 106849_01967 106850_00082 23025.7_01059
Eu gostaria de convertê-los assim:
106849_01373
106849_01967
106850_00082
23025.7_01059
Não tenho idéia de qual comando usar. Alguém pode me ajudar com isso?
command-line
text-processing
Annemieke Smet
fonte
fonte
Muito fácil com
tr
:Exemplo:
fonte
A resposta de heemayl é o caminho a seguir, no entanto, aqui está uma alternativa usando o Perl:
-l
: ativa o processamento automático de final de linha. Tem dois efeitos separados. Primeiro, ele chomps $ / (o separador de registro de entrada) automaticamente quando usado com -n ou -p. Segundo, ele atribui $ \ (o separador de registros de saída) para ter o valor de octnum, para que quaisquer instruções de impressão tenham esse separador adicionado novamente. Se o octnum for omitido, configure $ \ para o valor atual de $ /.-a
: ativa o modo de divisão automática quando usado com -n ou -p. Um comando de divisão implícita para a matriz @F é feito como a primeira coisa dentro do loop while implícito produzido pelo -n ou -p.-n
: faz com que o Perl assuma o seguinte loop em torno do seu programa, o que faz com que ele itere sobre os argumentos do nome do arquivo, como sed -n ou awk:-e
: pode ser usado para inserir uma linha de programa;$,="\n"
: define o separador do campo de saída como uma nova linha;print(@F)
: imprime os campos separados pelo separador de campos de saída.fonte
AWK
aproximação. Alterando basicamente o separador de saída para campos e loop. O arquivo de teste é o seu exemplo colado várias vezes com ENDLINE no finalfonte
Usando
sed
:fonte
Acabei de adicionar uma solução Python por diversão:
Este comando executa o script Python 3 de uma linha em 'aspas simples' com o nome do arquivo que você deseja converter como argumento no final. A sintaxe é assim:
O script de 1 linha que usamos é este (expandido para várias linhas para maior clareza):
Ele importa o
sys
módulo para ler os argumentos da linha de comando, pega o primeiro argumento fornecido como nome do arquivo para abrir e imprime cada pedaço de dados separados por espaço em branco do arquivo em uma única linha.fonte