Strings suchen und ersetzen in mehreren Dateien

In mehreren Dateien soll ein bestimmter Text gesucht und falls vorhanden ersetzt werden und gerade kein Tool zur Hand? Die Powershell kann das!

Snippet:

Achtung:
Die ursprüglichen Dateien werden dabei überschrieben!

Strings suchen und ersetzen in einer Datei

In einer Datei soll ein bestimmter Text gesucht und falls vorhanden ersetzt werden und gerade kein Tool zur Hand? Die Powershell kann das auch!

Snippet:

Hier wird einfach der Inhalt der Datei „Test.txt“ eingelesen und durchlaufen. Kommt der String „Alt“ vor so wird dieser durch „Neu“ ersetzt. Anschließend wird die Datei komplett in eine neue („Test_Neu.txt“) geschrieben.

Bestimmte Zeile einer Ausgabe zeigen

Möchte man nur eine bestimmte Zeile einer Befehlsausgabe anzeigen, so kann folgendes helfen:

Hier wird ein ein normaler Ping auf den eigenen PC ausgeführt und die Ausgabe des Ping-Befehls in die Variable „$tmp“ gespeichert. Anschließend wird mit „[5,-1,0]“ fetgelegt, welche Zeile angezeigt wird.
„$tmp[0]“ zeigt dabei z.B. die erste Zeile an, „$tmp[-1]“ die letzte Zeile.

Mit Select-String geht das auch, wie ich in einem Beispiel hier gezeigt habe.

Kommando-Ausgaben mit Select-String filtern

Heute habe ich schauen wollen, welche Anwendung den Port 80 auf meinem Computer belegt, da der Apache Webserver nicht mehr starten konnte.
Mit dem Netstat-Befehl von Windows und den Parametern „-a -f -b“ werden einem die offnenen Netzwerkverbindungen inkl. dem Exe-Namen angezeigt:

Da nun aber sehr viele Programme Ports öffnen kann die Liste sehr lange und übersichtlich werden. Hier kommt mal wieder die Powershell gerade richtig…
Da die Ausgabe von Netstat in der Powershell ebenso ausgegeben wird, wie in der Eingabeaufforderung, kann diese mit dem Commandlet „Select-String“ gefiltert werde.

Lange Erklärung kurzer Befehl… 🙂

Ich mache hier nichts anderes, als das Netstat-Kommando ausführen und die Ausgabe nach „:80“ zu filtern. Da der Anwendungsname nicht in der gleichen Zeile steht wie das Kriterium, lasse ich mir zusätzlich mit dem Parameter „Context“ eine Zeile zusätzlich nach dem Suchkriterium ausgeben.

In Datei nach String suchen in Eingabeaufforderung

Mit Findstr kann ganz einfach der Dateiinhalt nach gewissen Wörtern oder Texten durchsucht werden.

Sucht nach dem Wort „Hallo“ oder „Welt“ in der Datei „MeineDatei.txt“:

Möchte man allerdings wirklich nach „Hallo Welt“ suchen, so hilft der Parameter „/c“:

In Datei nach String suchen

Die Suche in einer Datei nach einem Wort oder einer Wortkette funktioniert mit WPS ganz einfach und schnell.
Hier wird die Datei namens „ZuDurchsuchendeDatei.log“ nach dem Wort „SuchstringOderSatz“ durchsucht. Powershell gibt dann die Zeilennummer und den Zeileninhalt aus.

Mit

werden alle Textdateien (*.txt) nach dem Wort durchsucht. Das Ergebnis enthält den Dateinamen mit der Zeilennummer.

Als Alternative sollte auch der folgende Codeschnipsel funktionieren
Get-Content ZuDurchsuchendeDatei.log | where {$_ -match „SuchstringOderSatz“}

Die Geschwindigkeit war recht gut. Bei mir war der Suchvorgang mit der Powershell schneller als mit meinem Lieblings-Texteditor, dem „Notepad++„.

Suchen und ersetzen in vielen Dateien

Schon mal versucht manuell bei mehr als 10 Dateien ein gewisses Wort durch ein anderes zu ersetzen?
Für genau dieses Szenario kann man die folgende Befehlszeile verwenden:

Zuerst werden in dem aktuellen Verzeichnis („.“) alle Dateien mit der Endung „.jpg“ gesucht und nacheinander durchlaufen. Dabei wird innerhalb der Datei nach dem Suchkriterium „AlterString“ gesucht. Wird dieser gefunden, so wird dieser durch „NeuerString“ ersetzt und die Datei gespeichert, falls nicht, so wird die Datei nicht geändert.

Quersumme von Strings oder Zahlen bilden

Die folgende Funktion „Quersumme“ bildet die Quersumme einer Zahlenreihe, oder von Zeichenketten.

Info:
Diese kann z.B. für die Berechnung von Prüfsummen verwendet werden.

Zeile in Datei finden und exportieren

Einen bestimmten String in einer Datei zu suchen und in einer weiteren die Zeile zu speichern ist unter Linux ganz einfach. Unter Windows und in einer Batchdatei gar nicht so viel schwerer, wenn man denn weiß wie es geht.

Text in String klein schreiben

Manchmal möchte man in einem String nur Groß- oder Kleinbuchstaben haben. Dies macht das folgende einfache Beispiel. Hier wird der Text einfach nur ausgegeben.

Info:
Für die Kleinschrift wird dann „ToUpper()“ statt „ToLower()“ verwendet.