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

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:
-Adruckt „$“ am Ende jeder Zeile und zeigt nicht druckbare Zeichen mit Caret-Notation an.-nnummeriert alle Zeilen.-bnummeriert nicht leere Zeilen.-sreduziert 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
2. sort
Wie der Name schon sagt, sortiert sort den Inhalt von Dateien alphabetisch und numerisch.

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

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.

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 -5oder-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.

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.

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.

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
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
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 filenameUm die ursprüngliche Datei zu ändern, können Sie das -i Flag verwenden.

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

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
Aufteilen nach Bytes
split -b bytes input_file output_prefix
Aufteilen auf eine bestimmte Anzahl von Dateien
split -n num_files input_file output_prefix12. tac
Tac, das cat in umgekehrter Reihenfolge ist, tut genau das: Es zeigt Dateien mit den Zeilen in umgekehrter Reihenfolge an.

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 SET2Um beispielsweise Kleinbuchstaben durch ihre Großbuchstaben-Entsprechung zu ersetzen, können Sie Folgendes verwenden:
tr "a-z" "A-Z"
Um eine Menge von Zeichen zu löschen, verwenden Sie das -d Flag.
tr -d SETUm das Komplement einer Menge von Zeichen zu löschen (d. h. alles außer der Menge), verwenden Sie -dc.
tr -dc SETFazit
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.