Linux-Textspaltenformatierung

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Das Spaltenformatieren von Text ist eine leistungsstarke Technik in Linux, die es Ihnen ermöglicht, Daten in einem strukturierten Tabellenformat zu organisieren und anzuzeigen. Wenn Sie mit einfachen Textdateien arbeiten, die durch Trennzeichen getrennte Daten enthalten, kann der Inhalt ohne geeignete Formatierung schwierig zu lesen sein. Der column-Befehl in Linux löst dieses Problem, indem er einfachen Text in ordentlich formatierte Spalten umwandelt.

Dieser Lab (LabEx) wird Sie durch die Beherrschung des column-Hilfsprogramms in Linux führen. Sie werden lernen, wie Sie den Dateiinhalt in tabellarischer Form anzeigen, wodurch die Daten einfacher zu lesen und zu analysieren werden. Diese Fähigkeiten sind für die Datenverarbeitung und -visualisierung in der Befehlszeilenumgebung unerlässlich.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/column("Text Columnizing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") subgraph Lab Skills linux/echo -.-> lab-271249{{"Linux-Textspaltenformatierung"}} linux/column -.-> lab-271249{{"Linux-Textspaltenformatierung"}} linux/cat -.-> lab-271249{{"Linux-Textspaltenformatierung"}} linux/cd -.-> lab-271249{{"Linux-Textspaltenformatierung"}} end

Grundlagen des Column-Befehls verstehen

In diesem Schritt werden wir lernen, wie man den column-Befehl verwendet, um Text in ausgerichtete Spalten zu formatieren, wodurch die Daten einfacher zu lesen und zu interpretieren werden.

Der column-Befehl ist ein Hilfsprogramm in Linux, das seine Eingabe in mehrere Spalten formatiert. Dies ist besonders nützlich, wenn man mit Daten arbeitet, die eine natürliche Struktur haben, aber im einfachen Textformat gespeichert sind.

Erstellen einer Beispieldatei

Beginnen wir damit, eine einfache Textdatei zu erstellen, die die Daten enthält, die wir formatieren möchten. Wir erstellen eine Datei namens powers_list.txt im Verzeichnis ~/project, die Superkräfte-Namen und die entsprechenden Helden-Namen enthält, getrennt durch einen Doppelpunkt.

Navigieren Sie zum Projektverzeichnis:

cd ~/project

Erstellen Sie nun die Beispieldatei mit dem echo-Befehl und der Option -e, die die Interpretation von Backslash-Escapes (wie \n für Zeilenumbruch) ermöglicht:

echo -e "Telekinesis:Jane\nInvisibility:John\nSuper Strength:Max" > ~/project/powers_list.txt

Lassen Sie uns den Inhalt der Datei untersuchen, die wir gerade erstellt haben:

cat ~/project/powers_list.txt

Sie sollten eine Ausgabe wie diese sehen:

Telekinesis:Jane
Invisibility:John
Super Strength:Max

Diese Daten sind mit einem Doppelpunkt (:) als Trennzeichen zwischen dem Superkräfte-Namen und dem Helden-Namen formatiert. Das Format ist so wie es ist nicht sehr lesbar.

Verwenden des Column-Befehls zum Formatieren

Nun verwenden wir den column-Befehl, um diese Daten in ein lesbareres Format zu transformieren:

column -t -s ':' ~/project/powers_list.txt

In diesem Befehl:

  • column ist das Hilfsprogramm, das wir verwenden
  • Die Option -t teilt dem Befehl mit, eine tabellenähnliche Ausgabe zu erstellen
  • -s ':' gibt an, dass das Trennzeichen in unserer Eingabedatei ein Doppelpunkt ist
  • ~/project/powers_list.txt ist der Pfad zu unserer Eingabedatei

Nach der Ausführung dieses Befehls sollten Sie die folgende Ausgabe sehen:

Telekinesis     Jane
Invisibility    John
Super Strength  Max

Beachten Sie, wie die Daten jetzt ordentlich in Spalten ausgerichtet sind, was es viel einfacher macht, sie zu lesen. Der column-Befehl hat automatisch die Breite jeder Spalte basierend auf dem Inhalt bestimmt und alles entsprechend ausgerichtet.

Diese grundlegende Verwendung des column-Befehls zeigt seine Stärke bei der Formatierung von Textdaten für eine bessere Lesbarkeit.

Fortgeschrittenes Spaltenformatieren mit einem Shell-Skript

In diesem Schritt werden wir ein Shell-Skript erstellen, das es einfacher macht, Textdateien mit verschiedenen Trennzeichen in Spalten zu formatieren. Dieser Ansatz ermöglicht mehr Flexibilität und Effizienz bei der Arbeit mit verschiedenen Datenformaten.

Shell-Skripte verstehen

Ein Shell-Skript ist eine Datei, die Befehle enthält, die die Shell ausführen kann. Es ermöglicht es Ihnen, Aufgaben zu automatisieren, indem Sie mehrere Befehle kombinieren und Logik hinzufügen. In diesem Fall werden wir ein Skript erstellen, das den Prozess des Spaltenformattierens von Dateien vereinfacht.

Erstellen des Columnize-Skripts

Erstellen wir ein Skript namens columnize.sh im Verzeichnis ~/project. Dieses Skript nimmt zwei Argumente entgegen: einen Dateinamen und ein Trennzeichen.

Zunächst navigieren Sie zum Projektverzeichnis, falls Sie nicht bereits dort sind:

cd ~/project

Jetzt erstellen wir die Skriptdatei:

touch columnize.sh

Öffnen Sie als Nächstes die Datei mit dem nano-Texteditor:

nano columnize.sh

Fügen Sie den folgenden Inhalt zur Datei hinzu:

#!/bin/bash
## Ein Skript zum Spaltenformatieren von Textdateien

## Prüfen, ob die richtige Anzahl von Argumenten angegeben wurde
if [ "$#" -ne 2 ]; then
  echo "Usage: $0 <filename> <delimiter>"
  echo "Example: $0 data.txt :"
  exit 1
fi

## Argumente extrahieren
FILENAME=$1
DELIMITER=$2

## Prüfen, ob die Datei existiert
if [ ! -f "$FILENAME" ]; then
  echo "Error: File '$FILENAME' does not exist"
  exit 1
fi

## Inhalt formatieren und ausgeben
column -t -s "$DELIMITER" "$FILENAME"

Um die Datei in nano zu speichern, drücken Sie Strg+O, dann Enter, und um nano zu verlassen, drücken Sie Strg+X.

Lassen Sie uns analysieren, was dieses Skript macht:

  1. Die erste Zeile (#!/bin/bash) teilt dem System mit, die bash-Shell zum Ausführen des Skripts zu verwenden.
  2. Wir prüfen, ob genau zwei Argumente angegeben wurden (ein Dateiname und ein Trennzeichen).
  3. Wir weisen diese Argumente Variablen zu, um sie leichter referenzieren zu können.
  4. Wir prüfen, ob die angegebene Datei existiert.
  5. Schließlich verwenden wir den column-Befehl mit dem angegebenen Dateinamen und Trennzeichen.

Das Skript ausführbar machen

Bevor wir unser Skript verwenden können, müssen wir es ausführbar machen:

chmod +x ~/project/columnize.sh

Verwenden des Columnize-Skripts

Jetzt können wir unser Skript verwenden, um Textdateien in Spalten zu formatieren. Verwenden wir es mit unserer vorhandenen Datei powers_list.txt:

~/project/columnize.sh ~/project/powers_list.txt :

Sie sollten die folgende Ausgabe sehen:

Telekinesis     Jane
Invisibility    John
Super Strength  Max

Erstellen wir eine weitere Beispieldatei mit einem anderen Trennzeichen, um die Flexibilität unseres Skripts zu testen:

echo -e "Apple,Red,Fruit\nCarrot,Orange,Vegetable\nBlueberry,Blue,Fruit" > ~/project/foods.txt

Verwenden Sie nun unser Skript mit dieser neuen Datei und einem Komma als Trennzeichen:

~/project/columnize.sh ~/project/foods.txt ,

Sie sollten eine Ausgabe wie diese sehen:

Apple      Red     Fruit
Carrot     Orange  Vegetable
Blueberry  Blue    Fruit

Unser Skript hat erfolgreich die Daten in beiden Dateien in Spalten formatiert, wobei verschiedene Trennzeichen verwendet wurden. Dies zeigt die Flexibilität und Stärke der Kombination von Shell-Skripting mit dem column-Hilfsprogramm.

Arbeiten mit verschiedenen Dateiformaten

In diesem Schritt werden wir untersuchen, wie man den column-Befehl mit verschiedenen Dateiformaten und Trennzeichen verwendet. Dies wird Ihnen helfen, die Vielseitigkeit des column-Hilfsprogramms zu verstehen und wie es auf verschiedene Datentypen angewendet werden kann.

Arbeiten mit CSV-Dateien

CSV (Comma-Separated Values, Komma-separierte Werte) -Dateien sind ein gängiges Format zum Speichern tabellarischer Daten. Erstellen wir eine komplexere CSV-Datei und verwenden den column-Befehl, um sie zu formatieren.

Zunächst erstellen wir eine neue CSV-Datei:

cd ~/project
echo -e "Name,Age,Occupation,City\nAlex,28,Engineer,Boston\nSamantha,35,Teacher,Chicago\nMohamed,42,Doctor,New York\nLin,31,Artist,San Francisco" > employees.csv

Lassen Sie uns den Inhalt dieser Datei untersuchen:

cat employees.csv

Sie sollten sehen:

Name,Age,Occupation,City
Alex,28,Engineer,Boston
Samantha,35,Teacher,Chicago
Mohamed,42,Doctor,New York
Lin,31,Artist,San Francisco

Jetzt verwenden wir den column-Befehl, um diese CSV-Datei zu formatieren:

column -t -s ',' employees.csv

Die Ausgabe sollte so aussehen:

Name       Age  Occupation  City
Alex       28   Engineer    Boston
Samantha   35   Teacher     Chicago
Mohamed    42   Doctor      New York
Lin        31   Artist      San Francisco

Beachten Sie, wie der column-Befehl die Daten ordentlich in ausgerichteten Spalten angeordnet hat, was es viel einfacher macht, sie zu lesen.

Arbeiten mit TSV-Dateien

TSV (Tab-Separated Values, Tabulator-separierte Werte) ist ein weiteres gängiges Format für tabellarische Daten. Erstellen wir eine TSV-Datei und formatieren sie mit dem column-Befehl.

Erstellen Sie eine TSV-Datei:

echo -e "Product\tPrice\tCategory\nLaptop\t999.99\tElectronics\nBook\t12.50\tMedia\nChair\t149.50\tFurniture" > products.tsv

Schauen wir uns den Inhalt an:

cat products.tsv

Sie sollten sehen:

Product	Price	Category
Laptop	999.99	Electronics
Book	12.50	Media
Chair	149.50	Furniture

Jetzt formatieren wir es mit dem column-Befehl. Da Tabulatoren das Standard-Trennzeichen für den column-Befehl sind, müssen wir kein Trennzeichen angeben:

column -t products.tsv

Die Ausgabe sollte so aussehen:

Product  Price   Category
Laptop   999.99  Electronics
Book     12.50   Media
Chair    149.50  Furniture

Verwenden unseres Skripts mit verschiedenen Dateien

Jetzt verwenden wir unser columnize.sh-Skript mit diesen verschiedenen Dateien:

Für die CSV-Datei:

~/project/columnize.sh employees.csv ,

Für die TSV-Datei:

~/project/columnize.sh products.tsv $'\t'

Hinweis: In dem zweiten Befehl verwenden wir $'\t', um ein Tabulatorzeichen darzustellen. Dies ist eine spezielle Syntax in bash, die es uns ermöglicht, Sonderzeichen wie Tabulatoren einzuschließen.

Beide Befehle sollten eine schön formatierte Ausgabe erzeugen, was die Flexibilität unseres Skripts mit verschiedenen Dateiformaten und Trennzeichen zeigt.

Dieser Schritt hat gezeigt, wie der column-Befehl und unser Skript verwendet werden können, um verschiedene Arten von tabellarischen Daten zu formatieren, wodurch sie lesbarer und leichter zu analysieren werden.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den column-Befehl verwenden können, um Daten in tabellarischer Form zu organisieren und anzuzeigen, was es einfacher macht, sie zu lesen und zu analysieren. Hier ist eine Zusammenfassung dessen, was Sie erreicht haben:

  1. Sie haben die grundlegende Verwendung des column-Befehls mit den Optionen -t und -s gelernt, um getrennte Textdateien zu formatieren.

  2. Sie haben ein Shell-Skript (columnize.sh) erstellt, das es einfach macht, Spaltenformatierung auf jede Datei mit jedem Trennzeichen anzuwenden.

  3. Sie haben diese Techniken auf verschiedene Dateiformate (CSV und TSV) angewendet, was die Flexibilität des column-Hilfsprogramms für verschiedene Datentypen zeigt.

Diese Fähigkeiten sind für die Datenverarbeitung und -analyse in einer Linux-Umgebung wertvoll. Die Fähigkeit, Textdaten schnell zu formatieren und zu visualisieren, ist ein mächtiges Werkzeug für Systemadministratoren, Datenanalysten und alle, die in der Befehlszeile mit Textdateien arbeiten.

Die Techniken, die Sie gelernt haben, können auf Folgendes angewendet werden:

  • Analyse von Protokolldateien (Log file analysis)
  • Verwaltung von Konfigurationsdateien (Configuration file management)
  • Datenextraktion und -transformation (Data extraction and transformation)
  • Schnelle Visualisierung von strukturierten Daten (Quick visualization of structured data)

Durch das Beherrschen des column-Befehls und das Erlernen, wie man seine Verwendung mit Shell-Skripten automatisiert, haben Sie ein wichtiges Werkzeug zu Ihrem Linux-Befehlszeilen-Werkzeugkasten hinzugefügt.