Recolhendo um fluxo de várias linhas em uma linha

5

Eu tenho um arquivo contendo um grande número de linhas, cada uma contendo um monte de números separados por espaços. Eu processo esses dados em um pipe de alguma forma e, em seguida, quero recolher as várias linhas em uma única linha de todos os números separados por espaços.

Existe um utilitário de linha de comando padrão que posso usar para fazer isso? Parece que a maioria dos utilitários de linha por linha não vai mexer com as novas linhas ...

    
por JeremyKun 26.05.2012 / 01:04

3 respostas

12

É por isso que você não usa utilitários de linha por linha para isso.

$ tr '\n' ' ' < input.txt > output.txt
    
por 26.05.2012 / 01:09
2

Mesmo os utilitários de linha por linha podem remover todas as novas linhas.

sed:

sed ':a;N;$!ba;s/\n/ /g' file

awk:

awk '{printf $0" "}' file

Mas é muito melhor usar tr , como escreveu @Ignacio Vazquez-Abrams.

    
por 26.05.2012 / 01:15
1

canaliza a saída para xargs

#!/bin/sh -x
while
do
date > temp
ping cp1za >> temp
cat temp | xargs echo
done
Tue Dec 17 18:23:31 UTC 2013 CS V1R12: Pinging host CP1ZA.TMMNA.TMM.TOYOTA.C (150.45.12.22) Ping #1 response took 0.001 seconds.
    
por 17.12.2013 / 19:24