[LINUX] Suche nach Zeichenketten in Dateien [Vergleich zwischen Bash und PowerShell]

Zurück zur Korrespondenztabelle für Bash- und PowerShell-Befehle

Ich habe ein wenig über die Verwendung von PowerShell gelernt.


Bash

Befehlsformat

$ grep [Möglichkeit] <Die Zeichenfolge, nach der Sie suchen möchten> [Dateiname]

# [Möglichkeit]: 任意(以下は、私がよく使うMöglichkeit)
    -i:Suche nicht zu unterscheiden
    -I:Binärdateien von der Suche ausschließen
    -n:Zeigen Sie die Zeilennummer des Teils an, das bei der Suche erfasst wurde
    -r:Suchen Sie nach Dateien in Unterverzeichnissen
    -v: <Die Zeichenfolge, nach der Sie suchen möchten>Zeigen Sie, was nicht passt
    -w:Nur genaue Übereinstimmungen anzeigen
    --exclude="*.Erweiterung": 指定したErweiterungは検索対象外にする
    --include="*.Erweiterung": 指定したErweiterungのみ検索対象にする

# <Die Zeichenfolge, nach der Sie suchen möchten>:Verpflichtend
Wenn in der Mitte Platz ist, ""String string"In doppelte Anführungszeichen setzen.

# [Dateiname]:Optional (aber fast obligatorisch)
Suchen Sie nur in der angegebenen Datei.
grundsätzlich "*(Sternchen): Es ist in Ordnung, wenn Sie "Alle Dateien durchsuchen" angeben.
Ich möchte das Suchziel eingrenzen (z. B. hoge)..Geben Sie einen bestimmten Dateinamen nur dann an, wenn (nur txt-Datei).

Anwendungsbeispiel

Beispiel 1) Suchen Sie mit hoge nach allen Dateien im aktuellen Verzeichnis

$ grep hoge *

Beispiel 2) Suchen Sie mit "hoge" nach der Datei "hoge.txt" im aktuellen Verzeichnis

$ grep hoge hoge.txt

Beispiel 3) Suchen Sie für alle Dateien einschließlich der Unterverzeichnisse nach einer genauen Übereinstimmung mit "main"

$ grep -rw main *

Beispiel 4) Suchen Sie nach allen Dateien, einschließlich Unterverzeichnissen, die kein "main" enthalten

$ grep -rv main *

Beispiel 5) Suchen Sie nach color nach allen json- und xml-Dateien einschließlich Unterverzeichnissen.

$ grep -r --exclude="*.json" --exclude="*.xml" color *

PowerShell

Befehlsformat

> Select-String -Path <Dateiname> -Pattern '<Die Zeichenfolge, nach der Sie suchen möchten>' [Möglichkeit]

# <Dateiname>Über
Suchen Sie nur in der angegebenen Datei.
grundsätzlich "*(Sternchen): Es ist in Ordnung, wenn Sie "Alle Dateien durchsuchen" angeben.
Ich möchte das Suchziel eingrenzen (z. B. hoge)..Geben Sie einen bestimmten Dateinamen nur dann an, wenn (nur txt-Datei).

# <Die Zeichenfolge, nach der Sie suchen möchten>Über
Geben Sie hier an, wonach Sie suchen möchten.
Stellen Sie sicher, dass "einfaches Anführungszeichen (einfaches Anführungszeichen)[Shift] + [7]) ”.

# [Möglichkeit]
    -Encoding:Zeichencode (Shift_JIS und UTF-8 usw.)
    -NotMatch: <Die Zeichenfolge, nach der Sie suchen möchten>Zeigen Sie, was nicht passt
    -Exclude <String>:Im Dateinamen<String>Schließen Sie diejenigen aus, die enthalten
    -Include <String>:Im Dateinamen<String>Nur diejenigen, die enthalten
> Get-ChildItem -Path <Ordnerpfad, den Sie suchen möchten> -Filter <Dateiname> -Recurse | Select-String -Pattern '<Die Zeichenfolge, nach der Sie suchen möchten>'

# -Über Recurse
Fügen Sie dies hinzu, wenn Sie Unterordner in das Suchziel aufnehmen möchten.

# <Ordnerpfad, den Sie suchen möchten>
Geben Sie an, wo die Suche gestartet werden soll.
Suchen Sie aus dem aktuellen Ordner: .(Punkt)
Suche aus dem Home-Ordner: ~(Tilda) oder$HOME
Suche aus dem Stammordner: /(Schrägstrich)

# <Dateiname>Über
Gleich wie "Nur im aktuellen Ordner suchen" oben.

# <Die Zeichenfolge, nach der Sie suchen möchten>Über
Gleich wie "Nur im aktuellen Ordner suchen" oben.

Anwendungsbeispiel

Beispiel 1) Suchen Sie mit hoge nach allen Dateien im aktuellen Verzeichnis

> Select-String -Path * -Pattern 'hoge'

Beispiel 2) Suchen Sie mit "hoge" nach der Datei "hoge.txt" im aktuellen Verzeichnis

> Select-String -Path hoge.txt -Pattern 'hoge'

Beispiel 3) Suchen Sie nach allen Dateien, einschließlich Unterverzeichnissen, die "main" enthalten

> Get-ChildItem -Path ./* -Filter * -Recurse | Select-String -Pattern 'main'

Beispiel 4) Suchen Sie nach allen Dateien, einschließlich Unterverzeichnissen, die kein "main" enthalten

> Get-ChildItem -Path ./* -Filter * -Recurse | Select-String -Pattern 'main' -NotMatch

Beispiel 5) Suche nach "Farbe" nach allen Dateien außer allen JSON-Dateien einschließlich Unterverzeichnissen (mehrere Dateien sind unbekannt)

> Get-ChildItem -Path ./* -Filter * -Recurse | Select-String -Pattern 'color' -Exclude *.json

Recommended Posts

Suche nach Zeichenketten in Dateien [Vergleich zwischen Bash und PowerShell]
Suchen Sie nach Zeichenfolgen in Dateien
Neue Datei erstellen [Vergleich zwischen Bash und PowerShell]
Suchen Sie rekursiv nach Dateien und Verzeichnissen in Python und geben Sie sie aus
Erstellen eines Alias (wenn mehrere Argumente vorhanden sind) [Vergleich von Bash und PowerShell]
Auswerten, Verketten und Ausführen von Zeichenfolgen in Variablen mithilfe von eval in bash
Leistungsvergleich zwischen zweidimensionaler Matrixberechnung und für mit Numpy
3-3, Python-Zeichenfolge und Zeichencode
Funktion zum Öffnen einer Datei in Python3 (Unterschied zwischen open und codecs.open und Geschwindigkeitsvergleich)
Unterschied zwischen list () und [] in Python
Bearbeiten Sie Dateien und Ordner in Python
Geschwindigkeitsvergleich zwischen CPython und PyPy
Exportieren und Ausgeben von Dateien in Python
Vektorisieren Sie Sätze und suchen Sie nach ähnlichen Sätzen
Extrahieren Sie mit Python Zeichenfolgen aus Dateien
[Python] Zusammenfassung der Konvertierung zwischen Zeichenfolgen und numerischen Werten (ASCII-Code)