Treisprezece instrumente utile pentru lucrul cu textul pe linia de comandă

Dreizehn nützliche Werkzeuge zum Arbeiten mit Text in der Befehlszeile

⌛ Reading Time: 6 minutes

GNU / Linux-Distributionen enthalten eine Vielzahl von Programmen für den Umgang mit Text, von denen die meisten von den GNU-Kerndienstprogrammen bereitgestellt werden. Es gibt eine gewisse Lernkurve, aber diese Dienstprogramme können sich bei korrekter Verwendung als sehr nützlich und effizient erweisen.

Hier sind dreizehn leistungsstarke Textbearbeitungswerkzeuge, die jeder Befehlszeilenbenutzer kennen sollte.

1. Katze

Katze wurde entworfen, um zu conKatzeDateien aktivieren, wird jedoch am häufigsten zum Anzeigen einer einzelnen Datei verwendet. Ohne Argumente liest cat die Standardeingabe bis Strg + D. wird gedrückt (vom Terminal oder von einem anderen Programmausgang, wenn eine Pipe verwendet wird). Die Standardeingabe kann auch explizit mit a angegeben werden -.

Cat hat eine Reihe nützlicher Optionen, insbesondere:

  • -A Gibt am Ende jeder Zeile “$” aus und zeigt nicht druckbare Zeichen in Caret-Notation an.
  • -n nummeriert alle Zeilen.
  • -b Zahlenzeilen, die nicht leer sind.
  • -s reduziert eine Reihe von Leerzeilen auf eine einzelne Leerzeile.

Im folgenden Beispiel verketten und nummerieren wir den Inhalt von Datei1, Standardeingabe und Datei3.

2. sortieren

Wie der Name schon sagt, sort sortiert den Dateiinhalt alphabetisch und numerisch.

Linux Text Tools Sortieren

3. uniq

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

Linux Text Tools Uniq

4. comm

Mit Comm werden zwei sortierte Dateien Zeile für Zeile verglichen. Es werden drei Spalten ausgegeben: Die ersten beiden Spalten enthalten Zeilen, die für die erste bzw. zweite Datei eindeutig sind, und die dritte zeigt die in beiden Dateien gefundenen Zeilen an.

Linux Text Tools Comm

5. schneiden

Ausschneiden wird verwendet, um bestimmte Zeilenabschnitte basierend auf Zeichen, Feldern oder Bytes abzurufen. Es kann aus einer Datei oder aus Standardeingaben lesen, wenn keine Datei angegeben ist.

Schneiden nach Zeichenposition

Das -c Option gibt eine einzelne Zeichenposition oder einen oder mehrere Zeichenbereiche an.

Zum Beispiel:

  • -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, das mit dem angegeben wird -d Möglichkeit. Das -f Mit der Option wird eine Feldposition oder ein oder mehrere Feldbereiche im gleichen Format wie oben ausgewählt.

Linux Text Tools Schnittfeld

6. dos2unix

GNU / Linux und Unix beenden Textzeilen normalerweise mit einem Zeilenvorschub (LF), während Windows Wagenrücklauf und Zeilenvorschub (CRLF) verwendet. Bei der Verarbeitung von CRLF-Text unter Linux können Kompatibilitätsprobleme auftreten. Hier kommt dos2unix ins Spiel. CRLF-Terminatoren werden in LF konvertiert.

Im folgenden Beispiel wird die file Mit dem Befehl wird das Textformat vor und nach der Verwendung überprüft dos2unix.

Linux Text Tools Dos2unix

7. falten

Um lange Textzeilen leichter lesbar und handhabbar zu machen, können Sie verwenden fold, der Zeilen mit einer bestimmten Breite umschließt.

Die Falte entspricht standardmäßig genau der angegebenen Breite und bricht bei Bedarf Wörter.

Linux Text Tools Falten

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

Linux Text Tools Fold Spaces

8. iconv

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

  • “Input_encoding” ist die Codierung, von der Sie konvertieren.
  • “Output_encoding” ist die Codierung, in die Sie konvertieren.
  • “Output_file” ist der Dateiname, unter dem iconv speichert.
  • “Input_file” ist der Dateiname, aus dem iconv liest.

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

9. sed

sed ist kraftvoll und flexibel stream editor, am häufigsten verwendet, um Zeichenfolgen mit der folgenden Syntax zu finden und zu ersetzen.

Der folgende Befehl liest aus der angegebenen Datei (oder Standardeingabe), ersetzt die Textteile, die dem Muster des regulären Ausdrucks entsprechen, durch die Ersetzungszeichenfolge und gibt das Ergebnis an das Terminal aus.

Um stattdessen die Originaldatei zu ändern, können Sie die verwenden -i Flagge.

Linux Text Tools Sed

10. wc

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

Linux Text Tools Wc

11. teilen

Sie können verwenden split Teilen einer Datei in kleinere Dateien, nach Anzahl der Zeilen, nach Größe oder nach einer bestimmten Anzahl von Dateien.

Aufteilen nach Anzahl der Zeilen

Linux Text Tools Geteilte Zeilen

Aufteilen nach Bytes

Linux Text Tools Geteilte Bytes

Aufteilen auf eine bestimmte Anzahl von Dateien

Geteilte Nummer der Linux Text Tools

12. tac

Tac, bei dem es sich um eine umgekehrte Katze handelt, macht genau das: Es zeigt Dateien mit den Zeilen in umgekehrter Reihenfolge an.

Linux Text Tools Tac

13. tr

Das tr-Tool wird zum Übersetzen oder Löschen von Zeichensätzen verwendet.

Ein Zeichensatz ist normalerweise entweder eine Zeichenfolge oder ein Zeichenbereich. Zum Beispiel:

  • “AZ”: alle Großbuchstaben
  • “A-z0-9”: Kleinbuchstaben und Ziffern
  • “ N.[:punct:]”: Zeilenumbruch und Satzzeichen

Siehe die tr Handbuchseite für mehr Details.

Verwenden Sie die folgende Syntax, um einen Satz in einen anderen zu übersetzen:

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

Linux Text Tools Tr

Verwenden Sie die Taste, um einen Zeichensatz zu löschen -d Flagge.

Linux Text Tools Tr D.

Verwenden Sie, um das Komplement eines Zeichensatzes (dh alles außer dem Satz) zu löschen -dc.

Linux Text Tools Tr DC

Fazit

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