Zeilenumbruch im cat Befehl einfügen.

BLR

Erfahrenes Mitglied
Hallo,

zu meiner Frage gibt es viele Hilfen, aber irgendwie kriege ich es denn noch nicht hin :(
und zwar füge ich 2 dateien in eine neue Datei zusammen. Problem dabei ist, dass
am Ende der Datei1 und beim Anfang der Datei2 grad aneinander folgen.

bsp: hallo, das ist die erste datei.hallo das ist die zweite datei.

ich möchte aber, dass der Anfang der zweiten Datei an einer neuen Zeile zu erkennen ist.
Ich hab schon versucht mit "Sed", mit "Echo". Leider klappte das nicht.

mein einfachste Lösung wäre:


Code:
cat 1.txt 2.txt  && echo -e '\n'> zusammenfassung.txt

Leider hat das keine Auswirkung.
bin für jeden Hinweis dankbar.
 

Der Wolf

Erfahrenes Mitglied
Hallo,

wenn du es über die Kommando-Zeile machst, kannst du dann nicht das sequentiell machen? Also erst die erste Datei in die Zusammenfassung übernehmen, dann einige Leerzeilen in die Datei schreiben und dann die neue Datei hinten anhängen?

Irgendwie, wie:

cat 1.txt >> zusammenfassung.txt && echo -e '\n' >> zusammenfassung.txt && cat 2.txt >> zusammenfassung.txt

Das wäre jetzt eine ganz schnelle Lösung (auch wenn ich sie jetzt nicht getestet habe).

Gruß,
Wolf
 

BLR

Erfahrenes Mitglied
sorry :)

ja es passiert soweit nichts, die beiden Sätze bleiben so wie vorher.
Ich hab jetzt aber Zwischenlösung gefunden.
Ich mache "suchen/ersetzen" mit dem Vim-Editor durch:
Code:
%s/.\.\r/g

Dabei stellt BackSlash-R stellt eine neue Zeile dar. :)

Ein weiteres Problem ist nun, dass mir das richtig unter Linux angezeigt wird.
Öffne ich die Datei in Windows, bleibt es beim alten^^
 

Der Wolf

Erfahrenes Mitglied
Windows und Linux verwenden unterschiedliche Steuerzeichen um ein Zeilenende zu markieren. Das ist zum Beispiel ziemlich nervig, wenn man bash-Scripte unter Windows entwickelt und dann in einem Linux-OS ausführen will. Da kommen teilweise merkwürdige Fehlermeldungen zu stande.

Wobei "\r" kannte ich jetzt auch nicht. Ich hätte für einen Zeilenumbruch eher ein "\n" erwartet.

Edit: Wahrscheinlich ist das mit den Steuerzeichen auch das Problem warum meine Befehlskette oben nicht das erwartete Ergebnis erbrachte. Hast du schonmal versucht das '\n' in der Befehlskette durch '\r' ersetzt?

Gruß,
Wolf
 
Zuletzt bearbeitet:

BLR

Erfahrenes Mitglied
ähhmm....ich bräuchte ne universale Lösung^^
Auch wenn ich mit "\n" das ersetzen würde, würd ich das dann unter Windows geordnet sehen, aber unter linux nicht ^^ oder halt umgekehrt mit "\r"
 

ikosaeder

Teekannen-Agnostiker
Es gibt unter Linux ein Programm, das die Zeilenumbrüche ersetzt
dos2unix um Windowszeilenumbrüche in Unixzeilenumbrüche zu verwandeln und
unix2dos für den umgekehrten Fall.
Es gibt keine Universale Lösung, es gibt aber Programme die mit beidem klarkommen.
 

BLR

Erfahrenes Mitglied
ahso
d.h. ich muss je nach dem, von welchem betriebssystem die Textdatei geöffnet wird, davor "dos2unix" oder "unix2dos" ausführen?