Ich habe mir (durch Einlesen und Abspeichern) im vi ein \n am Ende der Datei eingehandelt, was ich nicht mehr los werde. Das File wird jetzt durch WoaS (dazu gleich ein anderer Beitrag) nicht mehr geladen.
So kann ich es nachstellen und meine Reparaturversuche dazu:
Code: Alles auswählen
erno@gauner:/workdir/tmp$ cat /etc/debian_version
9.6
erno@gauner:/workdir/tmp$ cat testfile
1
22
333
1234
erno@gauner:/workdir/tmp$ tail -1 testfile | od -xc
0000000 3231 3433 000a
1 2 3 4 \n
erno@gauner:/workdir/tmp$ tail -1 testfile | sed 's/\n//' | od -xc
0000000 3231 3433 000a
1 2 3 4 \n
Ich habe einen grausamen Workaround gefunden, aber ich wüsste gern, wie es eleganter funktioniert.
Code: Alles auswählen
erno@gauner:/workdir/tmp$ awk '{if (NR==1) {printf $0} else printf "\n%s", $0}' testfile > outfile
erno@gauner:/workdir/tmp$ cat testfile
1
22
333
1234
erno@gauner:/workdir/tmp$ cat outfile
1
22
333
1234erno@gauner:/workdir/tmp$ diff testfile outfile
4c4
< 1234
---
> 1234
\ Kein Zeilenumbruch am Dateiende.