Awk trimm Whitespace

Awk trimm Whitespace

„Wenn Sie in der IT -Branche arbeiten, können Sie auf Tausende von Dateien stoßen, die viele Codezeilen oder riesige Datenmengen enthalten. Obwohl die Daten selbst einen Faktor für die Dateigröße sein könnten, verschärfen die Whitespaces auch die Größe stark. Mit der erhöhten Dateigröße können Sie beim Speichern dieser Dateien auf Probleme stoßen oder an Ihre Kollegen übertragen werden. Daher ist es unbedingt erforderlich, dass Sie sie entfernen, um die Dateigröße besser zu steuern. Schauen wir uns zunächst um, um sie im Detail zu verstehen.”

Was ist eine Weißespace?

Whitespace ist der Raum zwischen zwei druckbaren Zeichen. Es kann entweder innerhalb einer horizontalen Linie oder vertikal trennen Linien liegen. Mit anderen Worten, Platz zwischen den Wörtern, jeder leeren Zeilen, das NBSP -Tag zusammen mit Registerkarten kann als Whitespaces betrachtet werden. Die leeren Räume am Start und/oder am Ende der Linien werden ebenfalls als Weißspaces betrachtet.

Um Daten geistig zu erhalten, schreiben Programmierer Code, das für die Entfernung dieser Whitespaces beim Speichern von Daten verantwortlich ist. Die folgenden Fälle können die Entfernung von Whitespaces veranlassen:

  • Reformating/Refactoring Quellcode
  • Daten beseitigen
  • Vereinfachen Sie alle Befehlszeilenausgänge
  • Dateigröße reduzieren

Es ist möglich, Whitespace manuell zu entfernen, wenn in der Datei eine Handvoll Datenlinien vorhanden sind. Wenn die Datei jedoch Hunderte von Zeilen enthält, kann es sehr schwierig werden, sie manuell zu entfernen. Um dies zu überwinden, können wir die vielen Befehlszeilen-Tools verwenden, die uns zur Verfügung stehen, e.G., sed, geschnitten, tr und awk. Aus diesen ist Awk der mächtigere Befehl. Lassen Sie uns es weiter untersuchen.

Was ist awk?

Awk ist eine sehr leistungsstarke Skriptsprache, die für die Datenmanipulation und die Erzeugung von Bericht verwendet wird. Der awk -Befehl ist die Abkürzung der ersten Initialen jedes der drei Macher AHO, Weinberger und Kernighan. Awk ermächtigt seine Benutzer, Variablen, Zeichenfolgen, numerische Funktionen und arithmetische Operatoren zu definieren und unter anderem formatierte Berichte zu erstellen.

In diesem Artikel werden wir die Verwendung des awk -Befehls zum Trimmen von Whitespaces aus Ihren Dateien untersuchen. Nachdem Sie den Leitfaden durchlaufen haben, wissen Sie:

  • Trimmen Sie alle Whitespaces in jeder Datei ab.
  • Schneiden Sie sowohl die führenden als auch die nachfolgenden Weißespaces ab.
  • Schneiden Sie alle führenden Weißespaces ab.
  • Schneiden Sie alle nachverfolgenden Weißespace.
  • Ersetzen Sie mehrere Räume durch einen einzelnen Raum.

Die in diesem Artikel gezeigten Szenarien werden auf Ubuntu 22 durchgeführt.04 Jammy -Quallen -System. Diese Befehle sind auch in anderen Verteilungen ausführbar.

Beispieldatei

Für diesen Handbuch werden wir eine Textdatei mit dem Namen „ASD) verwenden.txt". Der Platzhalterinhalt der Beispieldatei sieht folgendermaßen aus:

Beginnen wir jetzt.

So sehen Sie alle Whitespaces in Ihrer Datei?

Lassen Sie uns zunächst sehen, wie wir Whitespaces in einer Datei identifizieren können. Zu diesem Zweck müssen Sie den Ausgang vom CAT -Befehl über den TR -Befehl als solches leiten:

$ cat asd.txt | tr "" "*" | tr "\ t" "&"

Dieser Befehl ersetzt Leerzeichen durch Sternchen und Registerkarten mit dem "&" Symbol. Sobald dies ausgeführt wird, können Sie alle Whitespaces in Ihrer Datei als solche sehen:

Lassen Sie uns nun die Verwendung des awk -Befehls untersuchen.

Alle Whitespaces abschneiden

Für unser erstes Szenario entfernen wir alle Whitespaces aus unserer Beispieldatei. Um dies zu erreichen, müssen wir die Ausgabe des CAT -Befehls in den awk -Befehl als solches übergeben:

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

Hier:

  • GSUB steht für die globale Substitution, die zum Substitutieren von Whitespaces verwendet wird.
  • Die doppelten Vorwärts -Schrägstriche ( / /) repräsentieren die Whitespace.
  • "" Mit den Doppelzitatsmarkierungen werden die Saiten geschnitten.

Mit dem obigen Befehl ersetzen wir also alle Whitespaces ( / /) durch nichts (""). Mit der Ausgabe aus dem obigen Befehl können Sie sehen, dass alle Whitespaces entfernt wurden.

Trimmen Sie die Führung und Ablauf von Whitespaces aus Ihrem Dokument aus

Aus der letzten Ausgabe können wir feststellen, dass die Whitespaces entfernt wurden, wobei die Registerkarten und leere Linien zurückgelassen wurden. Wir können den im letzten Beispiel verwendeten Befehl aktualisieren, um sich um die führenden und nachverfolgenden Whitespaces zu kümmern, zusammen mit Registerkarten als solchen:

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

Mit Elementen aus dem früheren Befehl können Sie überprüfen.

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

Hier sind die Befehle, mit denen Sie diese Räume separat entfernen können.

Nur führende Weißespace entfernen

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

Entfernen Sie nur nachfolgende Weißespace

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

Bonus: Ersetzen Sie mehrere Räume durch einen einzelnen Raum

Um mehrere Räume durch ein einzelnes oder gar nichts zu ersetzen, können Sie den Befehl awk als solche verwenden:

$ cat asd.txt | awk 'gsub (/[]+/””); drucken '

Mit dem TR -Befehl können wir sehen, dass die Whitespaces entfernt wurden.

Abschluss

Mit diesen Demonstrationen haben wir also verschiedene Möglichkeiten untersucht, auf denen wir den Befehl awk verwenden können, um die Whitespaces zu schneiden. Das Entfernen von ihnen könnte aus verschiedenen Gründen nützlich sein.

Wenn Sie Probleme verwenden, können Sie uns gerne mit dem folgenden Kommentarbereich an die Kommentare wenden, und wir werden gerne helfen.