awk vs sed

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

awk vs sed

Inlägg av Emil.s »

Båda används väl som "grep"? Men mer avancerat...

Men vad är skillnaden? Vilket borde man lära sig?
Känner att "grep" inte riktigt räcker alla gånger :P
Home sweet ~/ = http://sandnabba.se
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: awk vs sed

Inlägg av mcNisse »

Jag vill säga att bägge går att använda som grep. Sed har inga variabler och kan modifirera texten mha reguljära uttryck. awk är mer avancerat och har variabler och funktioner.

Jag tycker att bägge är värt att lära sig. Programmen komletterar varandra bra. Svårigheten med bägge är att lära sig reguljära uttryck.

Personligen använder jag sed när jag ska byta ut text i filer och awk när jag vill omstrukturera filer/resultat av vissa program. Eller för att beräkna förekomster av vissa ord i filer.
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

SV: awk vs sed

Inlägg av Emil.s »

Några användningsområden jag tänkt mig är tex:

Kod: Markera allt

eth0      Link encap:Ethernet  HWaddr 00:30:05:69:01:45  
          inet addr:10.0.0.5  Bcast:10.0.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:77373183 errors:0 dropped:0 overruns:0 frame:0
          TX packets:78896861 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2786693131 (2.5 GiB)  TX bytes:1436195710 (1.3 GiB)
          Interrupt:16 Base address:0x3000
Här skulle jag tilja ha ut tex enbart IP adressen. (10.0.0.5)

Kod: Markera allt

Mar  1 13:03:13 servern sshd[14365]: Accepted password for emil from 10.0.0.1 port 52486 ssh2
Mar  1 13:03:13 servern sshd[14369]: (pam_unix) session opened for user emil by (uid=0)
Mar  1 16:21:46 servern sshd[14438]: Accepted password for emil from 10.0.0.1 port 49172 ssh2
Mar  1 16:21:46 servern sshd[14442]: (pam_unix) session opened for user emil by (uid=0)
Mar  1 16:21:46 servern sshd[14442]: subsystem request for sftp
Mar  1 16:22:53 servern sshd[14444]: Accepted publickey for emil from 10.0.0.9 port 49174 ssh2
Av detta an lista som typ:
"emil" loggade in från x.x.x.x Mar  1 16:22:53

Vad skulle ni använda för det?
Home sweet ~/ = http://sandnabba.se
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ö

SV: awk vs sed

Inlägg av johanre »

Emil.s skrev: Några användningsområden jag tänkt mig är tex:

Kod: Markera allt

eth0      Link encap:Ethernet  HWaddr 00:30:05:69:01:45  
          inet addr:10.0.0.5  Bcast:10.0.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:77373183 errors:0 dropped:0 overruns:0 frame:0
          TX packets:78896861 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2786693131 (2.5 GiB)  TX bytes:1436195710 (1.3 GiB)
          Interrupt:16 Base address:0x3000
Här skulle jag tilja ha ut tex enbart IP adressen. (10.0.0.5)
http://ubuntu-se.org/smf/index.php/topi ... l#msg24343 & http://ubuntu-se.org/smf/index.php/topi ... l#msg26683
Emil.s skrev:

Kod: Markera allt

Mar  1 13:03:13 servern sshd[14365]: Accepted password for emil from 10.0.0.1 port 52486 ssh2
Mar  1 13:03:13 servern sshd[14369]: (pam_unix) session opened for user emil by (uid=0)
Mar  1 16:21:46 servern sshd[14438]: Accepted password for emil from 10.0.0.1 port 49172 ssh2
Mar  1 16:21:46 servern sshd[14442]: (pam_unix) session opened for user emil by (uid=0)
Mar  1 16:21:46 servern sshd[14442]: subsystem request for sftp
Mar  1 16:22:53 servern sshd[14444]: Accepted publickey for emil from 10.0.0.9 port 49174 ssh2
Av detta an lista som typ:
"emil" loggade in från x.x.x.x Mar  1 16:22:53

Vad skulle ni använda för det?
Python ...  ;)  Men visst, awk skulle lämpa sig utmärkt för det.
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

SV: awk vs sed

Inlägg av Emil.s »

Även detta funkar bra för IP'n:
`/sbin/ifconfig eth0 |sed -n '/inet/s/^[ ]*inet addr:\([0-9.]*\).*/\1/p'`

Så man kan nog använda det man själv gillar...  :P
Home sweet ~/ = http://sandnabba.se
marwal
Inlägg: 517
Blev medlem: 22 maj 2006, 18:45

SV: awk vs sed

Inlägg av marwal »

Den stora skillnaden kommer när man ska använda sig av kommandon från BASH. Då är enklare att använda sed. awk vill gärna krångla med quotes  och kräver en del speciallösningar.
Man ska heller inte glömma cut och tr som i många fall kan ersätta krångligare sed eller awk kommandon.

Jag har täckt awk, sed, cut, tr, grep, cat en del i artiklarna :
Textbehandling
Bokstavspar frekvens
på min hemsida.
Senast redigerad av 1 marwal, redigerad totalt 7 gånger.
Skriv svar

Återgå till "Terminalforum"