GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verketten von Dateien und Einfügen einer neuen Zeile zwischen Dateien

Wenn ich es tun würde, würde ich sed verwenden:

sed -e '$s/$/\n/' -s *.txt > finalfile.txt

In diesem Sed-Muster hat $ zwei Bedeutungen, erstens entspricht es nur der letzten Zeilennummer (als Bereich von Zeilen, auf die ein Muster angewendet werden soll) und zweitens entspricht es dem Ende der Zeile im Substitutionsmuster.

Wenn Ihre Version von sed nicht über -s verfügt (Eingabedateien separat verarbeiten) Sie können dies jedoch alles als Schleife ausführen:

for f in *.txt ; do sed -e '$s/$/\n/' $f ; done > finalfile.txt

Sie können Folgendes tun:

for f in *.txt; do (cat "${f}"; echo) >> finalfile.txt; done

Stellen Sie sicher, dass die Datei finalfile.txt existiert nicht, bevor Sie den obigen Befehl ausführen.

Wenn Sie awk verwenden dürfen Sie können Folgendes tun:

awk 'FNR==1{print ""}1' *.txt > finalfile.txt

Wenn Sie nur wenige Dateien haben, um jede einzelne aufzulisten, können Sie die Prozessersetzung in Bash verwenden, indem Sie zwischen jedem Dateipaar einen Zeilenumbruch einfügen:

cat File1.txt <(echo) File2.txt <(echo) File3.txt > finalfile.txt

Linux
  1. So komprimieren und dekomprimieren Sie Dateien unter Linux

  2. Unterschied zwischen Katze und „>“, um eine Datei auf Null zu setzen?

  3. Ssh – Kopieren geschützter Dateien zwischen Servern in einer Zeile?

  4. Neue Zeilen mit fehlenden Werten einfügen (na)?

  5. Linux – Dateien zwischen Linux-Host und Windows-Gast teilen?

fdupes – Ein Befehlszeilentool zum Suchen und Löschen doppelter Dateien in Linux

So verwenden Sie den cp-Befehl zum Kopieren von Dateien und Verzeichnissen

Installieren Sie Dropbox, um Dateien zwischen Linux und Windows auszutauschen

Übertragen Sie Dateien und Ordner zwischen Computern mit Croc

Freigabe von Dateien zwischen Linux Mint und Windows 10

Unterschied in Leerzeichen zwischen zwei Dateien unter Linux