Linux-Entwickler folgen der Philosophie, kleine Programme zu erstellen, die eine Aufgabe erledigen und diese gut erledigen. Nehmen Sie als Beispiel Linux-Textverarbeitungstools, sie sind leichtgewichtig und haben eine modulare Funktionalität. Obwohl sich diese Textbearbeitungswerkzeuge in Komplexität und Funktionalität unterscheiden, sind sie in einer Umgebung nützlich, in der die grafische Benutzeroberfläche nicht verfügbar ist.
Der Artikel behandelt die besten Linux-Tools zum Lesen von Dateien und zum Verwenden regulärer Ausdrücke zum Ausführen von Operationen am ausgewählten Text. Es behandelt auch die grundlegendsten Funktionen und Beispiele zum besseren Verständnis.
1. grep
grep ist ein Linux-Dienstprogramm zur Textbearbeitung, das in einer Datei oder einem Text nach einer Zeichenfolge oder Mustern sucht, die als reguläre Ausdrücke bekannt sind. Das Tool grep gehört zur Familie der Dienstprogramme, zu denen egrep, fgrep und grep gehören, von denen fgrep das schnellste und grep das einfachste ist.
Die allgemeine Syntax für die Verwendung von grep lautet wie folgt:
grep -options Zeichenfolge Dateiname
Zum Beispiel, um nach dem Wort „Wurzel“ in zu suchen die /etc/passwd-Datei:
grep root /etc/passwd
Einige Standard-Befehlszeilenbeispiele für den Einstieg sind:
Optionen | Beispiel | Beschreibung |
---|---|---|
-C | grep -c |
Zählen Sie die Anzahl der Zeilen, in denen die Zeichenfolge vorhanden ist |
-ich | grep -i |
Führt eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung nach der angegebenen Zeichenfolge durch |
-Ö | grep -o |
Druckt nur die übereinstimmende Zeichenfolge |
-l | grep -l "passwd" | Druckt Dateinamen im aktuellen Verzeichnis, die dem Muster entsprechen |
-n | grep -n |
Druckt die Zeilennummer entlang der Zeile, die die angegebene Zeichenfolge enthält |
Zeichenfolge1|Zeichenfolge2 | grep "string1|string2"-Datei | Finden und drucken Sie mehrere Zeichenfolgen aus einer Datei |
Ebenso können Sie die verwenden ^ metacharacter mit dem grep-Befehl, um alle übereinstimmenden Zeichenfolgen anzuzeigen, die mit bestimmten Zeichen beginnen.
Beispielsweise leitet der folgende Befehl die Ausgabe des Befehls env als Eingabe an grep weiter und zeigt Variablen an, die mit "HO":
env | grep ^HO
Verwandt: Praktische Beispiele der Linux-Grep-Befehle
2. ach
awk ist eine leistungsstarke Skriptsprache und ein Befehlszeilen-Textbearbeitungstool, das zeilenweise Scans durchführen und Zeilen mit Mustern vergleichen kann. Die grundlegende Syntax des awk-Befehls ist eine Aktion, die zwischen einem einfachen Anführungszeichen und geschweiften Klammern gefolgt vom Dateinamen definiert ist.
awk '{action}' Dateiname
awk '{Muster; action}' Dateiname
Das Dienstprogramm durchsucht die Datei mit regulären Ausdrücken und führt die im Aktionsparameter definierte Funktion aus. awk führt das Skript in jeder Zeile aus, wenn Sie kein Muster festlegen, wie unten gezeigt:
awk '{print $1}' awk_beispiele.txt
...wo $1 zeigt das erste Feld der an awk_examples.txt Datei.
Der folgende Befehl führt die Druckfunktion für das angegebene Muster aus, indem er das zweite Feld "Welt" mit "Alice," und zeigt die ganze Zeile an ($0):
echo "Hallo Welt" | awk '{$2="Alice"; drucke $0}'
Ausgabe:
Hallo Alice
Ebenso können Sie die Funktion verwenden $0 drucken aus dem obigen Befehl, um die zu emulieren grep Funktionalität.
awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh
3. Sortieren
sort ist ein weiteres Linux-Befehlszeilendienstprogramm, mit dem Sie den Inhalt der angegebenen Textdatei in einem sortierten Format anzeigen können. Beispielsweise können Sie die Ausgabe des awk-Befehls wie folgt als Eingabe an das Sortierdienstprogramm weiterleiten:
awk '{print $1}' awk_beispiele.txt | sortieren > sort_text.txt
cat sort_text.txt
Ausgabe:
Verwandt: So sortieren Sie Textdateien in Linux mit sort
4. sed
Der sed- oder Stream-Editor nimmt die Eingabe als Stream von Zeichen entgegen und führt Filter und Texttransformationen (Löschen, Ersetzen und Ersetzen) für den angegebenen Text durch.
Sie können es in einem Skript verwenden und Dateien nicht interaktiv bearbeiten. Daher ist der grundlegendste Zweck des Dienstprogramms die Ersetzung von Zeichenfolgen/Zeichen. Die allgemeine Syntax lautet:
sed 's/string/substitution/option'-Datei
Erstellen Sie eine Datei mit zufälligen Sätzen, um die Funktionsweise dieses Dienstprogramms zu üben und zu verstehen.
Lassen Sie uns das Vorkommen des Wortes "zwei" in jeder Zeile der Datei mit "2" Verwendung der -g Flag für globale Ersetzung wie folgt:
sed 's/two/2/g' sed_examples.txt > sed_examples2.txt
Verwenden Sie in ähnlicher Weise die -D Flag, um eine bestimmte Zeile aus der Datei zu löschen:
sed '2d' sed_examples.txt
Sie können die Zeichenfolge auch ersetzen, indem Sie eine Zeilennummer angeben (4 s/zwei/2/p) und nur die ersetzte Zeile wie folgt drucken:
sed -n '4 s/two/2/p' sed_examples2.txt
Der -n Flag im obigen Befehl deaktiviert das automatische Drucken des Eingabestroms zur Ausgabe. Sie können diese Option zu Ihren Gunsten verwenden, um die Funktionalität des Dienstprogramms grep durch sed zu ersetzen.
Beispielsweise können Sie den obigen Befehl ändern, indem Sie nur ein Regex-Muster einfügen /two/p so dass die -P flag gibt nur die Zeilen in den Standardausgabestrom aus.
sed -n '/two/p' sed_examples2.txt
Verwandt: Diese 10 Beispiele machen Sie zu einem Linux-Power-User
5. schneiden
Cut ist ein weiteres Befehlszeilenprogramm, das Textteile aus einer Zeile oder Datei ausschneidet/extrahiert. Es schneidet den Text basierend auf einem angegebenen Feld, Zeichen oder einer Byte-Position und leitet das Ergebnis an die Standardausgabe weiter.
Das Dienstprogramm nimmt die folgende Syntax an:
schneiden Datei
Verwenden Sie die -B Option zum Ausschneiden von Abschnitten oder Inhalten mit einem bestimmten Byte oder einem Bereich von Bytes:
cut -b 1 cut_examples.txt
Verwenden Sie die -C Flag zum Extrahieren von Text durch Angabe der Positionen von Zeichen:
cut -c 1,3,5 cut_examples.txt
Schließlich können Sie auch Text extrahieren, indem Sie Felder mit angeben -F Möglichkeit und -D für Leerzeichen oder Feldtrenner:
cut -d " " -f 1 cut_examples.txt
Hier ist die Liste der Bereiche mit Beispielen und Beschreibungen, die Sie mit dem Charakter verwenden können -C und byte -B Optionen:
Bereich | Beispiel | Beschreibung |
---|---|---|
n- | cut -c 7- Dateiname | Extrahiere Zeichen aus der n-ten Ganzzahl bis zum Ende der Zeile |
n-m | cut -b 7-15 Dateiname | Auszüge aus der Ganzzahl n-m jeder Zeile aus der Eingabedatei |
-m | cut -c -7 Dateiname | Extrahiert Zeilen beginnend mit m bis zum Ende der Zeile |
Beachten Sie, dass Sie die Bereiche für die Textextraktion nicht mithilfe des Felds definieren können -F Möglichkeit.
Bearbeiten von Text mit Linux-Befehlen
Linux bietet viele Programme und Tools zum Umgang mit und Arbeiten mit Dateien oder Text. Es ist möglicherweise nicht erforderlich, sie alle zu lernen, da Sie die Lücke leicht mit einem anderen füllen können, sobald Sie eines gut im Griff haben, z. B. mit sed als grep oder awk als grep, aber dies kann nicht für jedes Tool gelten.
Außerdem haben Linux-Befehle eine steile Lernkurve, aber sobald Sie die Fähigkeit entwickelt haben, können sie sich im Leben eines jeden Linux-Benutzers, insbesondere eines Systemadministrators, als sehr nützlich und effektiv erweisen.
Müde von der alten und langweiligen Terminal-App, die unter Linux vorinstalliert ist? Sehen Sie sich diese acht Terminal-Apps an, die Ihren Arbeitsablauf verbessern werden.
Lesen Sie weiter
- Linux
- Linux-Befehle
Rumaisa ist freiberufliche Autorin bei MUO. Sie hat viele Rollen getragen, von einer Mathematikerin bis hin zu einer Enthusiastin für Informationssicherheit, und arbeitet jetzt als SOC-Analystin. Ihre Interessen umfassen das Lesen und Schreiben über neue Technologien, Linux-Distributionen und alles rund um Informationssicherheit.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um sich anzumelden