Global Regular Expressions Print (grep)
Eintrag zuletzt aktualisiert am: 08.09.2017
Global Regular Expressions Print (grep) ist der wichtigste Textauswertungsbefehl in der
bash-Shell.
echo "
Global Regular Expressions Print"
sudo ufw status verbose | grep -e "[0-9][0-9][0-9][0-9]"
echo "
Extended Global Regular Expressions Print für weiterte RA-Syntax"
sudo ufw status verbose |
egrep "^[0-9]{1,4}"
Anders als die PowerShell/
PowerShell Core ist die
bash nicht objektorientiert, sondern rein textbasiert. Zur Auswertung der Ergebnisse von Kommandozeilenbefehlen benötigt sie daher die Textauswertungsbefehl grep und
egrep.
egrep versteht im Gegensatz zu grep auch die Befehle ? + { } | ( ) in Regulären Ausdrücken.
Einen Befehl wie grep braucht man in der PowerShell selten, da die PowerShell-
Commandlets ihre Ergebnisse nicht als Zeichenketten, sondern als strukturierte
.NET-
Objekte liefert. Dennoch gibt es in der PowerShell einen vergleichbaren Befehl (select-string) zur Auswertung klassischer Kommandozeilenbefehle, die Zeichenketten erzeugen.
Beispiel: Auswerten der offenen Firewall-Ports unter
Linux mit
PowerShell Core
sudo ufw status | select-string "^[0-9]{4}" | select-string -NotMatch "v6" | foreach { ($_.tostring() -replace' {2,}',"`t") } | ConvertFrom-
CSV -Delimiter "`t" -Header To,Action,From | where to -gt 5000 | sort-object port | ft from,to,action