Grep: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „* '''grep''' sucht nach Strings oder Regex-Mustern in Datenströmen oder Dokumenten * Zeilen mit passenden Mustern werden auf ''stdout'' ausgegeben * Es ist ei…“)
 
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 15: Zeile 15:
 
  root:x:0:0::/root:/bin/bash
 
  root:x:0:0::/root:/bin/bash
  
* '''grep''' -P "\d\d\d\d"
+
* '''grep -P "\d\d\d\d"'''
  
 
  nobody:x:65534:65534:Nobody:/:/usr/bin/nologin
 
  nobody:x:65534:65534:Nobody:/:/usr/bin/nologin
Zeile 52: Zeile 52:
  
 
= Aufgaben =
 
= Aufgaben =
 +
 +
* Zeigen Sie sich alle Benutzer an, die mit "s" beginnen.
 +
<!-- * '''grep "^s" /etc/passwd''' -->
 +
* Suchen Sie nach Zeilen ohne Kommentaren in ''/etc/default/grub''
 +
<!-- * '''grep -v "^#" /etc/default/grub''' -->
 +
<!-- * '''grep "^[^#]" /etc/default/grub''' -->

Aktuelle Version vom 1. Juni 2023, 12:38 Uhr

  • grep sucht nach Strings oder Regex-Mustern in Datenströmen oder Dokumenten
  • Zeilen mit passenden Mustern werden auf stdout ausgegeben
  • Es ist eine der meist verwendesten Tools, um:
    • lange Ausgaben zu filtern
    • Dateien mit bestimmten Inhalten zu finden
    • relevante Informationen an weitere Programme zu liefern

Beispiele

Suche nach Zeilen in einer Datei

  • grep kann nach einfachen Regex-Mustern suchen; Für mehr Optionen (wie z.B. \d) muss man Perl-Regex aktivieren -P
  • grep "r..t" /etc/passwd
root:x:0:0::/root:/bin/bash
  • grep -P "\d\d\d\d"
nobody:x:65534:65534:Nobody:/:/usr/bin/nologin
suxer:x:1000:1000::/home/suxer:/bin/zsh
xinux:x:1001:1001::/home/xinux:/bin/bash

Kontextsuche

  • Man kann auch Zeilen vor und nach der passenden Zeile mit ausgeben
  • ip a | grep --after-context=1
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
--
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether f7:b2:55:a3:ba:53 brd ff:ff:ff:ff:ff:ff
    altname enp0s25

Invertierung

  • Alle Zeilen ausgeben, die das Muster nicht enthalten
  • cat /etc/passwd | grep -v "systemd"
root:x:0:0::/root:/bin/bash
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin
mail:x:8:12::/var/spool/mail:/usr/bin/nologin
ftp:x:14:11::/srv/ftp:/usr/bin/nologin
http:x:33:33::/srv/http:/usr/bin/nologin
nobody:x:65534:65534:Nobody:/:/usr/bin/nologin
dbus:x:81:81:System Message Bus:/:/usr/bin/nologin
tss:x:975:975:tss user for tpm2:/:/usr/bin/nologin

Aufgaben

  • Zeigen Sie sich alle Benutzer an, die mit "s" beginnen.
  • Suchen Sie nach Zeilen ohne Kommentaren in /etc/default/grub