Wie ignoriere ich leere Zeilen in Grep?

Wie ignoriere ich leere Zeilen in Grep?
Grep steht für Globaler regelmäßiger Ausdruckdruck. Es hat viele Funktionen, ich.e., Suchen in einer Datei, nur Namen einer Datei, Grep rekursiv usw., usw. Grep wird im Linux -Befehlsportfolio als leistungsstarker Befehl angesehen, wenn es um die Suche geht. In vielen Fällen stehen wir in Situationen, in denen wir keine Leerzeichen benötigen, oder es besteht die Notwendigkeit, unerwünschte Lücken in unseren Daten zu entfernen. Eine der schwierigsten Möglichkeiten für die Verwendung von GREP besteht darin, leere Zeilen aus der Textdatei zu ignorieren oder zu entfernen. Dieses Verfahren erfolgt an verschiedenen Beispielen.

Syntax

Grep [Muster] [Dateiname]

Nach der Verwendung von Grep kommt ein Muster. Das Muster impliziert, wie wir es verwenden möchten, um zusätzlichen Speicherplatz in den Daten zu entfernen. Nach dem Muster wird der Dateiname beschrieben, durch das das Muster durchgeführt wird.

Voraussetzung

Um den Nutzen von Grep leicht zu verstehen, müssen Ubuntu auf unserem System installiert werden. Geben Sie Benutzerdetails an, indem Sie Benutzername und Kennwort bereitstellen, um Berechtigungen für den Zugriff auf die Anwendungen von Linux zu erhalten. Öffnen Sie nach dem Anmelden die Anwendung und suchen Sie nach einem Terminal oder wenden Sie den Abkürzungschlüssel von Strg+Alt+T an.

Durch die Verwendung von [: leer:] Schlüsselwort

Sie können eine Datei entweder auf Texteditor oder mit einer Befehlszeile im Terminal erstellen. So erstellen Sie eine Datei auf dem Terminal, einschließlich der folgenden Befehle.

$ echo "Text, der in eine Datei eingegeben wird"> Dateiname.txt

Es ist nicht erforderlich, eine Datei zu erstellen, wenn sie bereits vorhanden ist. Zeigen Sie es einfach mit dem angehängten Befehl an:

$ cat Dateiname.txt

Angenommen, wir haben eine Datei namens BFILE mit einer Textweiterung. Der in diesen Dateien geschriebene Text enthält Leerzeichen zwischen ihnen, wie in der folgenden Abbildung zu sehen ist.

$ echo "Mein Name ist Guria.
Ich bin ein guter Schüler.
Ich habe in Klasse 5 gelesen.
Ich habe einen Bruder und eine Schwester
meine Mutter ist eine Hausfrau
Ich will zur Schule gehen
"> bfile.txt

Zeigen Sie den Dateiinhalt wie unten gezeigt an:

$ cat bfile.txt

Diese leeren Zeilen können mit einem leeren Befehl entfernt werden, um leere Räume zwischen den Wörtern oder Zeichenfolgen zu ignorieren.

$ eGrep '^[: leer:]]*[^[: leer:]#]' bfile.txt

Nach dem Auftragen der Abfrage werden die leeren Leerzeichen zwischen den Leitungen entfernt und der Ausgang enthält keinen zusätzlichen Platz mehr. Das erste Wort wird als Leerzeichen zwischen dem letzten Wort der Zeile und zwischen den ersten Wörtern der nächsten Zeile entfernt. Wir können auch Bedingungen auf denselben GREP -Befehl anwenden, indem wir diese leere Funktion hinzufügen, um den nutzlosen Speicherplatz in der Ausgabe zu entfernen.

Durch Verwendung von [: Raum:]

Ein weiteres Beispiel für das Ignorieren von Raum wird hier erklärt. Erstellen Sie zunächst unsere Textdatei auf dem Terminal:

$ echo "Mein Name ist Hamna
Ich bin eine Hausfrau
Ich möchte Programmierung lernen
Ich habe eine Tochter
"> file20

Ohne die Dateierweiterung zu erwähnen, werden wir zunächst die vorhandene Datei mit dem Befehl anstellen.

$ cat file20

Schauen wir uns an, wie zusätzlich Platz mit dem GREP -Befehl neben dem Schlüsselwort [: Space:] entfernt wird. Die Option -V -Option von Grep hilft dabei, Linien zu drucken, die leere Zeilen und zusätzlichen Abstand fehlen, der auch in einem Absatzformular enthalten ist.

$ grep -v '^[[: Speicherplatz:]]*$' File2020

Sie werden sehen, dass zusätzliche Zeilen entfernt werden und die Ausgabe in sequenzierter Formlinie in Bezug auf. So ist die Grep -V -Methodik so hilfreich, um das erforderliche Ziel zu erhalten.

Machen wir ein weiteres Beispiel mit der folgenden Datendatei:

$ echo "Grep ist ein vielseitiger Befehl, der dem neuen Benutzer hilft.
Es wird verwendet, um Dateinamen mit Hilfe von Befehlen zu durchsuchen.
Wir können mit Grep Man zu Mannual gehen
"> Dateig.txt

Ausgabe ist wie folgt:

Durch die Anwendung des Befehls wurde unsere Ausgabedatei erhalten. Hier können wir Daten ohne Abstand zwischen den nacheinander geschriebenen Zeilen sehen.

$ grep -v '^[[: Space:]]*$' Dateig.txt

Neben langen Befehlen können wir auch die kurzen geschriebenen Befehle in Linux und Unix entscheiden, um GREP -Unterstützung zu Kurzzeichen darin zu implementieren.

$ grep '\ s' Dateig.txt

Wir haben gesehen, wie die Ausgabe durch Anwenden von Befehlen aus der Eingabe erhalten wird. Hier erfahren wir, wie die Eingabe aus der Ausgabe zurückgehalten wird.

$ grep '\ s' Dateig.txt> tmp.txt && mv tmp.txtdateig.txt

Hier verwenden wir eine temporäre Textdatei mit Erweiterung des als TMP bezeichneten Textdatei, um den gefilterten Inhalt wieder in die Originaldatei zu übertragen.

Durch Verwendung ^#

Erstellen wir eine neue Datendatei, um diese Syntaxversion zu testen:

$ echo "Grafikdesign ist eine gute Designplattform
und Logos -Visitenkarten machen
und Plakate usw. Photoshop
und Illustrator werden dafür "> FileB verwendet.txt
$ cat FileB.txt

Die Textdatei enthält 4 Zeilen darin, die Platz zwischen ihnen haben. Diese Space -Linien können mit einem bestimmten Befehl leicht entfernt werden.

$ grep -ev "^#|^$" FileB.txt

Regelmäßige erweiterte Operationen werden von -e aktiviert, wodurch alle regulären Ausdrücke, insbesondere Rohr. Ein Rohr wird in jedem Muster als optionaler „oder“ Zustand verwendet."^#". Dies zeigt die Übereinstimmung von Textzeilen in der Datei, die mit dem Zeichen # beginnt. "^$" Stimmt mit allen freien Räumen im Text oder leeren Zeilen überein.

Die Ausgabe zeigt die vollständige Entfernung des zusätzlichen Speicherplatzes zwischen den in der Datendatei vorhandenen Zeilen. In diesem Beispiel haben wir gesehen, dass in dem Befehl, dass "^#" an erster Stelle steht, was bedeutet, dass der Text zuerst übereinstimmt. "^$" Kommt nach | Bediener, so dass der freie Speicherplatz danach angepasst wird.

Durch Verwendung ^$

Genau wie das oben erwähnte Beispiel werden wir mit den gleichen Ergebnissen geliefert, da der Befehl fast gleich ist. Das Muster ist jedoch widerstandsfähig geschrieben. Datei22.TXT ist eine Datei, die wir beim Entfernen von Räumen verwenden werden.

$ echo "Technisches Schreiben ist ein gutes Studium
Es ist ein analytisches Feld
Wir können viele Dinge darin lernen
Business Writing ist seine Kategorie des Schreibens
Danke fot Learning "> Datei22.txt
$ grep -v '^$' Datei22.txt

Die gleiche Methodik wird angewendet, bis auf die Arbeit mit Priorität. Nach diesem Befehl werden zuerst freie Spaces übereinstimmen, dann werden die Textdateien übereinstimmen. Die Ausgabe liefert eine Abfolge von Linien, indem zusätzliche Lücken in sie entfernt werden.

Andere einfache Befehle

grep '^…' Datei22.txt
Grep '.'Datei22.txt

Diese sind beide so einfach und hilft beim Entfernen von Lücken in Textzeilen.

Abschluss

Das Entfernen von nutzlosen Lücken in Dateien mit Hilfe regulärer Ausdrücke ist ein einfacher Ansatz, um eine reibungslose Abfolge von Daten zu erreichen und die Konsistenz aufrechtzuerhalten. Beispiele werden detailliert erläutert, um Ihre Informationen zum Thema zu verbessern.