Zu machen, wie die Katze eine neue Zeile beginnen

Habe ich vier Dateien:

one_file.txt

abc | def

two_file.txt

ghi | jkl

three_file.txt

mno | pqr

four_WORD.txt

xyz| xyz

Ich verketten möchten alle Dateien mit der Endung "file.txt" (d.h. alle außer four_WORD.txt), um zu erhalten:

abc | def
ghi | jkl
mno | pqr

Um dies zu erreichen, habe ich ausgeführt:

Katze *file.txt > full_set.txt

Jedoch full_set.txt raus kommt:

abc | defmno | pqrghi | jkl

Irgendwelche Ideen, wie dies zu tun, richtig und effizient, so dass jeder endet an seiner eigenen Linie? In der Realität, ich brauche die, die oben für eine Menge von sehr großen Dateien. Vielen Dank im Voraus für Eure Hilfe.

  • Hinzufügen end-of-line-Zeichen an das Ende jeder Datei. Sie sollen da sein.
  • Abhängig von den Dateien, das könnte nicht sein, überhaupt nicht machbar. Es gibt viele Szenarien, in denen Sie möchten, können Sie zum verketten von Dateien mit newlines zwischen Ihnen, ohne Sie zu addieren, um die input-Dateien.
  • Eine Textdatei ist eine Folge von Zeilen. Dies wird durch POSIX. Eine Zeile endet mit dem newline-Zeichen. (Eine alternative Sicht, dass die neue-Zeile-Zeichen trennt, anstatt beendet, Linien, ist theoretisch möglich, aber die Ergebnisse in ein Chaos).
  • Unabhängig von POSIX, gibt es Situationen, wo das, was Sie haben, ist nicht eine POSIX-text-Datei, die Sie dennoch nützlich sein, zu manipulieren, mit standard-tools.
  • Wenn es keine text-Datei, dann ruft es *txt ist wahrscheinlich nicht eine gute Idee. Jedenfalls, wenn Sie nicht-standard-Dateien, haben Sie Probleme, wenn Sie mit standard-tools. Umgang Probleme eins nach dem anderen, ist eine Möglichkeit, den Umgang mit dem problem, die Umstellung auf ein standard-format ist ein anderes, weder ist universell gut.
InformationsquelleAutor user3890260 | 2014-07-30
Schreibe einen Kommentar