Hur skriva regex med 'grep'?

Tråden skapades och har fått 5 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • International user
  • 2005-04-23 21:07

Hur skriver man ett regex med 'grep' som filtrera på två olika textsträngar?

Lincoln:~ admin$ df -H
Filesystem                Size   Used  Avail Capacity  Mounted on
/dev/disk0s9               80G    59G    21G    74%    /
devfs                      96K    96K     0B   100%    /dev
fdesc                     1.0K   1.0K     0B   100%    /dev
<volfs>                   524K   524K     0B   100%    /.vol
automount -nsl [325]        0B     0B     0B   100%    /Network
automount -fstab [362]      0B     0B     0B   100%    /automount/Servers
automount -static [362]     0B     0B     0B   100%    /automount/static

# Nu vill jag bara lista 'Network' och 'Servers'..

Lincoln:~ admin$ df -H | grep -e xxxx

Hur ser ett regex ut för det. Hur skriver man "xxxx"?

  • Medlem
  • Umeå
  • 2005-04-23 21:19

Detta borde göra det, om jag förstår dig rätt.

df -H | grep -e "Servers\|Network"
  • Medlem
  • International user
  • 2005-04-23 21:28

Tack! Men varför '\' före '|'?

  • Medlem
  • Umeå
  • 2005-04-23 21:31

Är inte supersäker på varför det är så, men det verkar som om man måste escapa alla regexp-tecken när man skicka regexpar till grep sådär. Kanske kan använda andra typer av citationstecken eller nåt. Jag vet ej.

  • Medlem
  • International user
  • 2005-04-23 21:35

OK, såg följande i man-filen:

In basic regular expressions the metacharacters ?, +, {, |, (, and )
lose their special meaning; instead use the backslashed versions \?,
\+, \{, \|, \(, and \).

  • Medlem
  • Umeå
  • 2005-04-23 22:13

Se där, den som söker han finner.

1
Bevaka tråden