Awk

Awk Trim Whitespace

Awk Trim Whitespace
Als Programmierer müssen Sie möglicherweise mit verschiedenen Dateien arbeiten, um Daten zu speichern und zu bearbeiten. Eine grundlegende Aufgabe der Dateibearbeitung besteht darin, die Leerzeichen in Dateien zu entfernen. Whitespaces bestehen aus Leerzeichen, Leerzeilen, nbsp und Tabs. Programmierer müssen oft Whitespaces entfernen, damit nur die notwendigen Daten gespeichert werden und unnötige Whitespaces eliminiert werden können. Die Leerzeichen können entweder führende (am Zeilenanfang) oder nachgestellte (am Zeilenende) Leerzeichen sein.

Im Folgenden sind einige Szenarien aufgeführt, in denen das Entfernen von Leerzeichen erforderlich sein kann:

Es ist möglich, Leerzeichen manuell zu entfernen, wenn eine Datei nur wenige Zeilen enthält. Bei einer Datei mit Hunderten von Zeilen ist es jedoch schwierig, alle Leerzeichen manuell zu entfernen remove. Zu diesem Zweck stehen verschiedene Befehlszeilentools zur Verfügung, darunter sed, awk, cut und tr. Unter diesen Tools ist awk einer der mächtigsten Befehle.

Was ist Awk?

Awk ist eine leistungsstarke und nützliche Skriptsprache, die bei der Textbearbeitung und Berichterstellung verwendet wird. Der awk-Befehl wird mit den Initialen der einzelnen Personen (Aho, Weinberger und Kernighan) abgekürzt, die ihn entwickelt haben. Mit Awk können Sie Variablen, numerische Funktionen, Strings und arithmetische Operatoren definieren; formatierte Berichte erstellen; und mehr.

Dieser Artikel erklärt die Verwendung des awk-Befehls zum Trimmen von Leerzeichen explains. Nachdem Sie diesen Artikel gelesen haben, erfahren Sie, wie Sie mit dem Befehl awk Folgendes ausführen:

Die Befehle in diesem Artikel wurden auf einem Ubuntu 20 . ausgeführt.04 Fokales Fossa-System. Dieselben Befehle können jedoch auch auf anderen Linux-Distributionen ausgeführt werden. Wir verwenden die Standardanwendung Ubuntu Terminal zum Ausführen der Befehle in diesem Artikel. Sie können mit der Tastenkombination Strg+Alt+T auf das Terminal zugreifen+.

Zu Demonstrationszwecken verwenden wir die Beispieldatei mit dem Namen "sample".TXT.” um die in diesem Artikel bereitgestellten Beispiele auszuführen.

Alle Leerzeichen in einer Datei anzeigen

Um alle in einer Datei vorhandenen Leerzeichen anzuzeigen, leiten Sie die Ausgabe des cat-Befehls wie folgt an den tr-Befehl weiter:

$ Katzenprobe.txt | tr " " "*" | tr "\t" "&"

Dieser Befehl ersetzt alle Leerzeichen in der angegebenen Datei durch das (*)-Zeichen. Nachdem Sie diesen Befehl eingegeben haben, können Sie deutlich sehen, wo alle Leerzeichen (einschließlich führender und nachgestellter Leerzeichen) in der Datei vorhanden sind.

Die *-Zeichen im folgenden Screenshot zeigen, wo alle Leerzeichen in der Beispieldatei vorhanden sind. Ein einzelnes * steht für ein einzelnes Leerzeichen.

Alle Leerzeichen trimmen

Um alle Leerzeichen aus einer Datei zu entfernen, leiten Sie den Befehl out of cat wie folgt an den Befehl awk weiter:

$ Katzenprobe.txt | awk ' gsub(/ /,""); drucken '

Wo

Der obige Befehl ersetzt alle Leerzeichen (/ /) durch nichts ("").

Im folgenden Screenshot sehen Sie, dass alle Leerzeichen, einschließlich der führenden und nachgestellten Leerzeichen, aus der Ausgabe entfernt wurden.

Führende Leerzeichen kürzen

Um nur die führenden Leerzeichen aus der Datei zu entfernen, leiten Sie den Befehl out of cat wie folgt an den Befehl awk weiter:

$ Katzenprobe.txt | awk ' sub(/^[ \t]+/, ""); drucken '

Wo

Der obige Befehl ersetzt ein oder mehrere Leerzeichen am Anfang der Zeichenfolge (^[ \t]+ ) durch nichts („“), um die führenden Leerzeichen zu entfernen.

Im folgenden Screenshot sehen Sie, dass alle führenden Whitespaces aus der Ausgabe entfernt wurden.

Sie können den folgenden Befehl verwenden, um zu überprüfen, ob der obige Befehl die führenden Leerzeichen entfernt hat:

$ Katzenprobe.txt | awk ' sub(/^[ \t]+/, ""); drucken ' | tr " " "*" |
tr "\t" "&"

Im Screenshot unten ist deutlich zu erkennen, dass nur die führenden Whitespaces entfernt wurden.

Nachgestellte Leerzeichen kürzen

Um nur die abschließenden Leerzeichen aus einer Datei zu entfernen, leiten Sie den Befehl out of cat wie folgt an den Befehl awk weiter:

$ Katzenprobe.txt | awk ' sub(/[ \t]+$/, ""); drucken '

Wo

Der obige Befehl ersetzt ein oder mehrere Leerzeichen am Ende der Zeichenfolge ([ \t]+ $) durch nichts ( „“), um die nachfolgenden Leerzeichen zu entfernen.

Sie können den folgenden Befehl verwenden, um zu überprüfen, ob der obige Befehl die abschließenden Leerzeichen entfernt hat:

$ Katzenprobe.txt | awk ' sub(/[ \t]+$/, ""); drucken ' | tr " " "*" | tr "\t" "&"

Aus dem folgenden Screenshot ist deutlich zu erkennen, dass die nachfolgenden Leerzeichen entfernt wurden.

Kürzen Sie sowohl führende als auch nachgestellte Leerzeichen

Um sowohl die führenden als auch die nachgestellten Leerzeichen aus einer Datei zu entfernen, leiten Sie den Befehl out of cat wie folgt an den Befehl awk weiter:

$ Katzenprobe.txt | awk ' gsub(/^[ \t]+|[ \t]+$/, ""); drucken '

Wo

Der obige Befehl ersetzt sowohl das führende als auch das abschließende Leerzeichen (^[ \t]+ [ \t]+$) mit nichts (""), um sie zu entfernen.

Um festzustellen, ob der obige Befehl sowohl die führenden als auch die abschließenden Leerzeichen in der Datei entfernt hat, verwenden Sie den folgenden Befehl:

$ Katzenprobe.txt | awk ' gsub(/^[ \t]+|[ \t]+$/, ""); drucken ' |
tr " " "*" | tr "\t" "&"

Aus dem Screenshot unten ist deutlich zu erkennen, dass sowohl die führenden als auch die nachgestellten Leerzeichen entfernt wurden und nur die Leerzeichen zwischen den Zeichenfolgen übrig bleiben.

Ersetzen Sie mehrere Leerzeichen durch ein einzelnes Leerzeichen

Um mehrere Leerzeichen durch ein einzelnes Leerzeichen zu ersetzen, leiten Sie den Befehl out of cat wie folgt an den Befehl awk weiter:

$ Katzenprobe.txt | awk ' gsub(/[ ]+/," "); drucken '

Wo:

Der obige Befehl ersetzt mehrere Leerzeichen ([ ]+) durch ein einzelnes Leerzeichen („ “).

Sie können den folgenden Befehl verwenden, um zu überprüfen, ob der obige Befehl die mehreren Leerzeichen durch die Leerzeichen ersetzt hat:

$ Katzenprobe.txt | awk ' sub(/[ \t]+$/, ""); drucken ' | | tr " " "*" | tr "\t" "&"

Es gab mehrere Leerzeichen in unserer Beispieldatei. Wie Sie sehen, mehrere Leerzeichen im Beispiel white.txt-Datei wurden mit dem Befehl awk durch ein einzelnes Leerzeichen ersetzt.

Um die Leerzeichen nur in den Zeilen zu entfernen, die ein bestimmtes Zeichen wie Komma, Doppelpunkt oder Semikolon enthalten, verwenden Sie den Befehl awk mit dem -F Eingabetrennzeichen.

Unten sehen Sie zum Beispiel unsere Beispieldatei, die Leerzeichen in jeder Zeile enthält.

Um die Leerzeichen nur aus den Zeilen zu entfernen, die ein Komma (,) enthalten, lautet der Befehl wie folgt:

$ Katzenprobe1.txt | awk -F, '/,/gsub(/ /,""); drucken'

Wo (-F,) ist das Eingabefeld-Trennzeichen.

Der obige Befehl entfernt und zeigt nur die Leerzeichen aus den Zeilen an, die das angegebene Zeichen (,) enthalten. Der Rest der Zeilen bleibt davon unberührt.

Fazit

Das ist alles, was Sie wissen müssen, um die Leerzeichen in Ihren Daten mit dem Befehl awk zu entfernen. Das Entfernen der Leerzeichen aus Ihren Daten kann aus verschiedenen Gründen erforderlich sein. Was auch immer der Grund ist, Sie können mit den in diesem Artikel beschriebenen Befehlen ganz einfach alle Leerzeichen in Ihren Daten entfernen. Mit dem Befehl awk können Sie sogar führende oder nachgestellte Leerzeichen kürzen, führende und nachgestellte Leerzeichen kürzen und mehrere Leerzeichen durch ein einzelnes Leerzeichen ersetzen.

So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...
Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...