Reguljära uttryck med "grep". Tex "greppa ipadress" :)

Här diskuteras programmering och utveckling
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

Reguljära uttryck med "grep". Tex "greppa ipadress" :)

Inlägg av Emil.s »

Har läst lite om reguljära uttryck. :)
Men jag fattar inte riktigt hur det funkar. Hur gör man om man tex vill grepp IP adressen för eth0 från "ifconfig"?

Kod: Markera allt

eth0      Link encap:Ethernet  HWaddr 00:11:11:2A:31:A2  
          inet addr:10.0.0.6  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::211:11ff:fe2a:31a2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11333 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10260 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4282668 (4.0 MiB)  TX bytes:2028829 (1.9 MiB)
          Interrupt:169

Kod: Markera allt

emil@Sandnabba: ~ $ ifconfig eth0 | grep inet
          inet addr:10.0.0.6  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::211:11ff:fe2a:31a2/64 Scope:Link
En bra bit på väg. :)

"| grep 10.0.0.6" gör ju att man får första raden. Men hur gör man sen om man bara vill ha 10.0.0.6 som output? Går det med grep?
Går ju att få första raden med:

Kod: Markera allt

emil@Sandnabba: ~ $ ifconfig eth0 | grep inet | grep 10.0.0.6
          inet addr:10.0.0.6  Bcast:10.0.0.255  Mask:255.255.255.0
Men går det att köra grep kommandot på en "grep"? dvs inte "grep * | grep *"...

Borde det inte går med något sånt här:

Kod: Markera allt

ifconfig eth0 | grep [0-9][?][?].*
?
Som jag fattat det så borde datorn tänka ungefär så här:
Kör "ifconfig eth0", leta efter en rad som innehåller minst 1 fält som börjar med en siffra, som kanske är uppdelat i 3 fät, som följs av en punkt, och sen vad osm hellst...

Hur som hellst så funkar det inte. Förmodligen sitter ni "vana mästare" på reguljära uttryck och skrattar nu, men men... :cool:
Home sweet ~/ = http://sandnabba.se
Användarvisningsbild
Barre
Inlägg: 2298
Blev medlem: 13 dec 2006, 10:23
OS: Ubuntu
Ort: Stockholm
Kontakt:

Reguljära uttryck med "grep". Tex "greppa ipadress" :)

Inlägg av Barre »

själv använde jag awk för att få fram IP addressen från ifconfig
kanske inte det snyggaste sättet, men det fungrar.

Kod: Markera allt

ifconfig eth1 | awk '/inet addr:/ {print substr($2,match($2,/[0-9]/),length($2))}'
________________________________________________________________
twitter @ BarreGargamel
blogg @ Gargamel.NU
Användarvisningsbild
johanre
Serveradmin
Inlägg: 3888
Blev medlem: 22 okt 2006, 09:13
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Malmö

Reguljära uttryck med "grep". Tex "greppa ipadress" :)

Inlägg av johanre »

Ett sätt att lösa det på hittar du här: http://ubuntu-se.org/forum/viewtopic.ph ... 343#p24343 :)
Skriv svar

Återgå till "Programmering och webbdesign"