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

So verbinden Sie mehrere Zeilen in einer Datei in Linux zu einer

Im heutigen Tutorial zur Linux-Dateiverwaltung werden wir uns gültige Ansätze ansehen, um mehrere Zeilen innerhalb einer Datei zu einer einzigen Zeile zu verbinden. Am Ende dieses Artikels werden Sie Ihrer Erfahrung mit der Linux-Dateiverwaltung einige Computing-Meilensteine ​​hinzugefügt haben.

[Das könnte Ihnen auch gefallen:So verbinden Sie zwei Textdateien unter Linux]

Die Möglichkeiten/Möglichkeiten für Benutzer, die das Linux-Betriebssystem über die Befehlszeilenschnittstelle nutzen, sind weiterhin endlos. Eine solche Möglichkeit besteht darin, eine mehrzeilige Datei über eine Reihe von Linux-Befehlen in eine einzeilige Datei zu manipulieren. Das Ziel für das Zusammenführen solcher Zeilen kann so einfach sein wie das Hinzufügen benutzerdefinierter Trennzeichen zur Zieldatei.

Problembeschreibung

Da sich dieses Tutorial auf das Zusammenführen mehrerer Zeilen zu einer einzigen Zeile in einer Zieldatei konzentriert, müssen wir eine solche Art von Datei zu Referenzzwecken erstellen und sie mit einigen mehrzeiligen Daten füllen.

$ sudo nano sample_file.txt

Gemäß obiger Bildschirmaufnahme handelt es sich um eine Datei (sample_file.txt ) mit sechs Zeilen, und es gibt drei Ansätze, diese sechs Zeilen zu verbinden:

  1. Ohne Trennzeichen:Ich liebeLinuxShellTipsTutorials wirklich!
  2. Mit einem einzelnen Trennzeichen:Ich liebe Linux.Shell,Tipps,Tutorials!
  3. Mit Trennzeichen aus mehreren Zeichen:Ich liebe wirklich;Linux;Shell;Tipps;Tutorials!

Wie man mehrere Zeilen in einer Datei zu einer einzigen Zeile zusammenfügt

Werfen wir einen Blick auf diese drei Ansätze, um unter Linux mehrere Zeilen innerhalb einer Datei zu einer einzigen Zeile zusammenzufügen.

1. Verwenden des sed-Befehls

Die Macht des sed Das Textverarbeitungs-Befehlszeilendienstprogramm ermöglicht es uns, die sechs Zeilen in unserer Beispieltextdatei zu verbinden, indem wir die oben beschriebenen drei Ansätze in Bezug auf fast dieselbe Codesyntax behandeln.

Ohne Trennzeichen:

$ sed ':a; N; $!ba; s/\n//g' sample_file.txt  

Mit Abstand:

$ sed ':a; N; $!ba; s/\n/ /g' sample_file.txt 

Mit einem Einzelzeichen-Trennzeichen, z. ein Komma:

$ sed ':a; N; $!ba; s/\n/,/g' sample_file.txt 

Mit Trennzeichen für mehrere Zeichen, z. Semikolon und Leerzeichen:

$ sed ':a; N; $!ba; s/\n/; /g' sample_file.txt 

2. Verwenden des awk-Befehls

Das Linux-awk command ist ein weiteres seriöses Befehlszeilentool zur Textverarbeitung. Sein Ansatz zur Lösung unseres Multi-Line-zu-Single-Line-Problems kann auf folgende Weise analysiert und implementiert werden:

Ohne Trennzeichen:

$ awk -v d="" '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt

Mit Abstand:

$ awk -v d=" " '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt

Mit einem Einzelzeichen-Trennzeichen, z. ein Komma:

$ awk -v d="," '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt

Mit Trennzeichen für mehrere Zeichen, z. Semikolon und Leerzeichen:

$ awk -v d="; " '{s=(NR==1?s:s d)$0}END{print s}' sample_file.txt

3. Verwenden des Einfügen-Befehls

Die Paste Der Befehl ist nur ideal, um mehrere Zeilen ohne Trennzeichen, mit Leerzeichen und mit einem einzelnen Trennzeichen zu verbinden. Dieses Dienstprogramm befindet sich unter den GNU Coreutils Paket daher seine Verfügbarkeit auf allen Linux OS-Distributionen.

Ohne Trennzeichen:

$ paste -sd '' sample_file.txt

Mit Abstand:

$ paste -sd ' ' sample_file.txt

Mit einem Einzelzeichen-Trennzeichen, z. ein Unterstrich:

$ paste -sd '_' sample_file.txt

Der abschließende Unterstrich (_) kann entfernt werden, indem der paste-Befehl an einen sed-Befehl weitergeleitet wird:

$ paste -sd '_' sample_file.txt | sed 's/_$/\n/'

Dieser Ansatz ist nicht ideal mit Trennzeichen aus mehreren Zeichen, z. B. einem Semikolon und einem Leerzeichen, wegen unregelmäßiger Ausgaben wie der folgenden:

$ paste -sd '; ' sample_file.txt

4. Verwenden des tr-Befehls

Der tr-Befehl ist auch ideal zum Verbinden mehrerer Zeilen ohne Trennzeichen, mit Leerzeichen und mit einem einzelnen Trennzeichen.

Ohne Trennzeichen:

$ tr -d '\n' < sample_file.txt

Mit Abstand:

$ tr '\n' ' ' < sample_file.txt

Mit einem Einzelzeichen-Trennzeichen, z. ein Komma:

$ tr '\n' ',' < sample_file.txt	

Leiten Sie die Ausgabe an einen sed-Befehl, um die zusätzlichen Kommas loszuwerden.

$ tr '\n' ',' < sample_file.txt | sed 's/,,$/\n/'

Wir haben erfolgreich gelernt, wie man mehrere Zeilen in einer Datei unter Linux zu einer einzigen Zeile zusammenfügt.


Linux
  1. Wie fügt man mehrere Zeilen an eine Datei an?

  2. Wie man Zeilen in einer Datei in UNIX/Linux zählt

  3. Mehrere Zeilen in eine durch Komma getrennte Zeile umwandeln

  4. So fügen Sie den Inhalt mehrerer Dateien in eine Datei ein

  5. Wie teilt man eine Textdatei in mehrere *.txt-Dateien auf?

So verbinden Sie mehrere Zeilen in einer Datei in Linux zu einer

So mischen Sie Zeilen in einer Datei unter Linux

So kehren Sie Zeilen in einer Datei zeichenweise in Linux um

So führen Sie unter Linux mehrere PDF-Dateien zu einem PDF zusammen

So verbinden/verschmelzen Sie mehrere Audiodateien zu einer in Linux

So finden Sie die längste(n) Zeile(n) in einer Datei in Linux