Se eseguo il comando cat file | grep pattern
, ottengo molte righe di output. Come si concatenano tutte le linee in un'unica riga, sostituendo efficacemente ogni "\n"
con "\" "
(terminare con "
seguito dallo spazio)?Come concatenare più righe di output su una riga?
cat file | grep pattern | xargs sed s/\n/ /g
non funziona per me.
possibile duplicato di [SED:? Come posso sostituire una nuova riga (\ n)] (http://stackoverflow.com/questions/1251999/sed-how-can-i-replace-a- newline-n) – ruakh
A proposito: (1) devi mettere il tuo script 'sed' in virgolette singole in modo che Bash non si scherzi con esso (dal momento che' sed s/\ n// g' chiama 'sed' con due argomenti, ovvero 's/n /' e '/ g'); (2) dal momento che si desidera l'output di 'cat file | grep pattern' come * input * per 'sed', non gli * argomenti * per' sed', è necessario eliminare 'xargs'; e (3) non c'è bisogno di 'cat' qui, dato che' grep' può prendere un nome di file come secondo argomento. Quindi, dovresti aver provato 'file di modello grep | sed 's/\ n// g''. (In questo caso non avrebbe funzionato, per ragioni fornite al link sopra, ma ora lo sai per il futuro.) – ruakh
simile a "http://stackoverflow.com/questions/2764051/how-to-join- multiple-lines-of-file-names-in-one-with-custom-delimiter " –