2014-09-13 26 views
24

ha uscita da sed:Utilizzando tr sostituire a capo con lo spazio

http://sitename.com/galleries/83450 
72-profile 

Quei due stringhe dovrebbero essere fusi in un unico e separati da spazio come:

http://sitename.com/galleries/83450 72-profile 

due stringhe sono pipeline a tr in per sostituire newline con spazio:

tr '\n' ' ' 

E non è funzionando, il risultato è lo stesso dell'input.

L'indicazione dello spazio con codice ASCII '\032' ha come risultato la sostituzione di \n con caratteri non stampabili.

Cosa c'è che non va? Sto usando Git Bash su Windows.

+0

ho provato piping un file di testo con nuove righe per tr con la stessa sintassi e funziona. Come stai facendo la pipa? Il file ha newlines E linefeeds? forse prova "tr '\ r \ n' ''" –

risposta

37

La migliore ipotesi è che sei su Windows e le impostazioni di fine linea sono impostate per Windows. Vedere questo argomento: How to change line-ending settings

o l'uso:

tr '\r\n' ' ' 
+0

d'accordo sulle terminazioni delle linee di Windows. La soluzione rapida è 'dos2unix file'. Buona fortuna a tutti. – shellter

+0

bene lo script ha ancora '\ r'. Ma non sembra che funzionerà per quello che vuoi. Metterà tutto su una riga, non solo su 2 righe per volta, quindi il ciclo FOR passerà sempre una sola volta. –