Eine geringfügige Abweichung von der Antwort von Glenn Jackman mit paste: Wenn der Wert für die -dTrennzeichenoption mehr als ein Zeichen enthält, pastewerden die Zeichen einzeln durchlaufen und in Kombination mit den -sOptionen weiterhin ausgeführt, während dieselbe Eingabedatei verarbeitet wird.
Dies bedeutet, dass wir alles, was wir wollen, als Trennzeichen und die Escape-Sequenz verwenden können \n, um zwei Zeilen gleichzeitig zusammenzuführen.
Komma verwenden:
$ paste -s -d ',\n' infile
KEY 4048:1736 string,3
KEY 0:1772 string,1
KEY 4192:1349 string,1
KEY 7329:2407 string,2
KEY 0:1774 string,1
und das Dollarzeichen:
$ paste -s -d '$\n' infile
KEY 4048:1736 string$3
KEY 0:1772 string$1
KEY 4192:1349 string$1
KEY 7329:2407 string$2
KEY 0:1774 string$1
Dies kann nicht verwendet werden, indem ein Trennzeichen verwendet wird, das aus mehreren Zeichen besteht.
Als Bonus pasteändert dies nicht die neue Zeile der letzten Zeile in der Datei , wenn POSIX-kompatibel ist, also für eine Eingabedatei mit einer ungeraden Anzahl von Zeilen wie
KEY 4048:1736 string
3
KEY 0:1772 string
paste wird das Trennungszeichen in der letzten Zeile nicht anheften:
$ paste -s -d ',\n' infile
KEY 4048:1736 string,3
KEY 0:1772 string
pr,paste,awk,xargs,sedundpure bash! (xargsist langsamer, langsamer als Bash !)