Dreizehn nützliche Werkzeuge für die Arbeit mit Text in der Befehlszeile

Text Tool Linux Command Line Featured

GNU/Linux-Distributionen enthalten eine Fülle von Programmen zur Handhabung von Text, von denen die meisten von den GNU-Kernwerkzeugen bereitgestellt werden. Es gibt eine gewisse Lernkurve, aber diese Werkzeuge können sich als sehr nützlich und effizient erweisen, wenn sie richtig eingesetzt werden.

Hier sind dreizehn leistungsstarke Textbearbeitungswerkzeuge, die jeder Benutzer der Befehlszeile kennen sollte.

1. cat

Cat wurde entwickelt, um Dateien zu cat enieren, wird jedoch am häufigsten verwendet, um eine einzelne Datei anzuzeigen. Ohne Argumente liest cat die Standardeingabe, bis Ctrl + D gedrückt wird (aus dem Terminal oder aus einer anderen Programm-Ausgabe, wenn eine Pipe verwendet wird). Die Standardeingabe kann auch ausdrücklich mit einem - angegeben werden.

Cat hat eine Reihe nützlicher Optionen, insbesondere:

  • -A druckt „$“ am Ende jeder Zeile und zeigt nicht druckbare Zeichen mit Caret-Notation an.
  • -n nummeriert alle Zeilen.
  • -b nummeriert nicht leere Zeilen.
  • -s reduziert eine Serie von Leerzeilen auf eine einzige Leerzeile.

Im folgenden Beispiel verketten und nummerieren wir den Inhalt von file1, der Standardeingabe und file3.

cat -n file1 - file3

Linux Text Tools Cat

2. sort

Wie der Name schon sagt, sortiert sort den Inhalt von Dateien alphabetisch und numerisch.

Linux Text Tools Sort

3. uniq

Uniq nimmt eine sortierte Datei und entfernt doppelte Zeilen. Es wird oft mit sort in einem einzigen Befehl verknüpft.

Linux Text Tools Uniq

4. comm

Comm wird verwendet, um zwei sortierte Dateien zeilenweise zu vergleichen. Es gibt drei Spalten aus: Die ersten beiden Spalten enthalten Zeilen, die jeweils für die erste und zweite Datei einzigartig sind, und die dritte zeigt die in beiden Dateien gefundenen Zeilen an.

Linux Text Tools Comm

5. cut

Cut wird verwendet, um spezifische Abschnitte von Zeilen basierend auf Zeichen, Feldern oder Bytes abzurufen. Es kann aus einer Datei lesen oder aus der Standardeingabe, wenn keine Datei angegeben ist.

Schneiden nach Zeichenposition

Die -c Option gibt eine einzelne Zeichenposition oder eine oder mehrere Bereiche von Zeichen an.

Beispielsweise:

  • -c 3: das 3. Zeichen.
  • -c 3-5: vom 3. bis zum 5. Zeichen.
  • -c -5 oder -c 1-5: vom 1. bis zum 5. Zeichen.
  • -c 5-: vom 5. Zeichen bis zum Ende der Zeile.
  • -c 3,5-7: das 3. und vom 5. bis zum 7. Zeichen.

Linux Text Tools Cut Char

Schneiden nach Feld

Felder werden durch ein Trennzeichen getrennt, das aus einem einzelnen Zeichen besteht, welches mit der -d Option angegeben wird. Die -f Option wählt eine Feldposition oder eine oder mehrere Bereiche von Feldern im gleichen Format wie oben angegeben aus.

Linux Text Tools Cut Field

6. dos2unix

GNU/Linux und Unix beenden normalerweise Textzeilen mit einem Zeilenumbruch (LF), während Windows Wagenrücklauf und Zeilenumbruch (CRLF) verwendet. Kompatibilitätsprobleme können auftreten, wenn CRLF-Text unter Linux bearbeitet wird, weshalb dos2unix zum Einsatz kommt. Es konvertiert CRLF-Abschlusszeichen in LF.

Im folgenden Beispiel wird der file Befehl verwendet, um das Textformat vor und nach der Verwendung von dos2unix zu überprüfen.

Linux Text Tools Dos2unix

7. fold

Um lange Textzeilen leichter lesbar und handhabbar zu machen, können Sie fold verwenden, das Zeilen auf eine festgelegte Breite umbricht.

Fold entspricht standardmäßig streng der angegebenen Breite und bricht Wörter, wo nötig.

fold -w30 longline.txt

Linux Text Tools Fold

Wenn das Brechen von Wörtern unerwünscht ist, können Sie die -s Option verwenden, um an Leerzeichen zu brechen.

fold -w30 -s longline.txt

Linux Text Tools Fold Spaces

8. iconv

Dieses Tool konvertiert Text von einer Codierung in eine andere, was beim Umgang mit ungewöhnlichen Codierungen sehr nützlich ist.

iconv -f input_encoding -t output_encoding -o output_file input_file
  • “input_encoding” ist die Codierung, von der Sie konvertieren.
  • “output_encoding” ist die Codierung, in die Sie konvertieren.
  • “output_file” ist der Dateiname, in den iconv speichern wird.
  • “input_file” ist der Dateiname, von dem iconv lesen wird.

Hinweis: Sie können die verfügbaren Codierungen mit iconv -l auflisten.

9. sed

sed ist ein leistungsstarker und flexibler s tream ed itor, der am häufigsten verwendet wird, um Strings mit der folgenden Syntax zu finden und zu ersetzen.

Der folgende Befehl liest aus der angegebenen Datei (oder der Standardeingabe), ersetzt die Textteile, die dem regulären Ausdrucksmuster entsprechen, durch den Ersetzungsstring und gibt das Ergebnis im Terminal aus.

sed s/pattern/replacement/g filename

Um die ursprüngliche Datei zu ändern, können Sie das -i Flag verwenden.

Linux Text Tools Sed

10. wc

Die wc Utility gibt die Anzahl der Bytes, Zeichen, Wörter oder Zeilen in einer Datei aus.

Linux Text Tools Wc

11. split

Sie können split verwenden, um eine Datei in kleinere Dateien aufzuteilen, nach Zeilenanzahl, nach Größe oder auf eine bestimmte Anzahl von Dateien.

Aufteilen nach Anzahl der Zeilen

split -l num_lines input_file output_prefix

Linux Text Tools Split Lines

Aufteilen nach Bytes

split -b bytes input_file output_prefix

Linux Text Tools Split Bytes

Aufteilen auf eine bestimmte Anzahl von Dateien

split -n num_files input_file output_prefix

12. tac

Tac, das cat in umgekehrter Reihenfolge ist, tut genau das: Es zeigt Dateien mit den Zeilen in umgekehrter Reihenfolge an.

Linux Text Tools Tac

13. tr

Das tr-Tool wird verwendet, um Zeichenmengen zu übersetzen oder zu löschen.

Eine Zeichenmenge ist normalerweise entweder ein String oder Bereiche von Zeichen. Zum Beispiel:

  • “A-Z”: alle Großbuchstaben
  • “a-z0-9”: Kleinbuchstaben und Ziffern
  • “\n[:punct:]”: Neue Zeilen und Interpunktion

Beziehen Sie sich auf die man-Seite von tr für weitere Details.

Um eine Menge in eine andere zu übersetzen, verwenden Sie die folgende Syntax:

tr SET1 SET2

Um beispielsweise Kleinbuchstaben durch ihre Großbuchstaben-Entsprechung zu ersetzen, können Sie Folgendes verwenden:

tr "a-z" "A-Z"

Linux Text Tools Tr

Um eine Menge von Zeichen zu löschen, verwenden Sie das -d Flag.

tr -d SET

Um das Komplement einer Menge von Zeichen zu löschen (d. h. alles außer der Menge), verwenden Sie -dc.

tr -dc SET

Fazit

Es gibt viel zu lernen, wenn es um die Linux-Befehlszeile geht. Hoffentlich helfen Ihnen die obigen Befehle, besser mit Text in der Befehlszeile umzugehen.