[----------------------------- [ $ cat 00_intro.txt ] AWKing af Lars Sommer, [email protected] 2005-04-20 Dette er en rÊkke simple eksempler p hvad programmet awk kan bruges til. Awk kan meget, og der er skrevet hele b¯ger om det. Jeg vil kun gennemg det meget overfladisk. Du kan mÂske bruge mine noter og eksempler som en lille introduktion til awk. Awk kan bruge mange c-lignende statements, som if-else, while, for, break, next og exit. Jeg vil kun gennemg enkelte af dem. For mere information: skriv "man awk" google awk Simpel brug af awk-scripting direkte p kommandolinjen: Awk deler linjer i en fil op i enkelte dele, som kan bearbejdes. Denne kommando printer f¯rste ord af hver linje i den givne fil p skÊrmen: awk '{print $1}' filnavn Der sÊttes {} omkring awk-scriptet, og nÂr det bruges direkte p kommandolinjen, sÊttes '' omrking scriptet. Selve scriptet er her blot print $1. ∆ndre field separatoren: Normalt deler awk linjerne op i ord adskilt med mellemrum. Men hvis der nu arbejdes med en fil som f.eks. /etc/passwd, ¯nskes det mÂske at dele linjerne op med : som separator. Parameteren -F bruges til at Êndre field separator. Her bruger vi : som separator, og fÂr printet f¯rste "ord" af /etc/passwd (brugernavnene): awk -F: '{print $1}' /etc/passwd Bruge awk-scriptfiler i stedet for kommandolinjen: For at bede awk om at bruge en fil som et awk-script, gives den -f-parameteren, som: awk -f awkscript filderskalrodesi [----------------------------- [ $ cat 01_begin_end.awk ] #BEGIN og END: #De to kan bruges til at f en kommando udf¯rt en enkelt gang nÂr scriptet # starter, og nÂr det slutter, i forhold til resten, som bliver udf¯rt en gang # ved hver linje i filen man arbejder med. BEGIN { print "Her begynder vi:" } { print $1 } END { print "Saa er vi faerdige!" } [----------------------------- [ $ cat 02_line_numbers.awk ] #Line numbers #Et eksempel der sÊtter linjenumre p en fil #Og til sidst skriver antal linjer BEGIN { linje = 0 } { print linje," ",$0; linje++; } END { print "Antal linjer i filen", FILENAME linje } [----------------------------- [ $ cat 03_eregging.txt ] Extended regular expressions i awk Som s mange andre steder, kan man bruge regexp i awk. Her er et eksempel der printer f¯rste ord af alle linjer der indeholder g efterfulgt af k. /g.*k/ { print $1 } Her fÂr vi listet alle brugere, der bruger bash som shell: awk '/bash/ { print $1 }' /etc/passwd [----------------------------- [ $ cat 04_for.awk ] #Eksempel paa en for kontrolstruktur i awk #I dette eksempel printes ordene i omvendt rÊkkef¯lge #{ #for ( i = NF; i>=1; i--) #print $i #} #Men hov! Det er jo ikke pÊnt med linebreaks for hvert ord. #awk har en smart printf, hvor man ligesom i c, kan printe lidt mere avanceret: { for ( i = NF; i>=1; i--) printf "%s ", $i; print "\n"; }
-
Kategorier:
-
Emneordsky:
Anmeldelse Apple Armbåndsure BoltAction Cisco Computer Familie Fantasy Fashion Forbrug FreeBSD Fritid HeroQuest Humor iPhone IT-Sikkerhed Linux Mac Mad&Drikke Mobil OpenBSD Opskrifter Programmering Rollespil Slægtsforskning Solaris Spil Stamtræ Sustainability Tabletopgaming Telt Udendørsliv Unix Warhammer Warhammer40k WarlordsOfErehwon Webudvikling Windows
-
Seneste indlæg:
-
Øvrige dele af hjemmesiden:
- Apple
- Blandet
- Cisco ASA
- Computer, blandet
- APG bødekalkulator
- AWK intro
- Diverse snak via Telnet
- Fra Windows til Linux, stille og roligt
- IPv6 noter fra hlk
- Mailservere og deres skalerbarhed
- Maple 9 i linux
- Nemme IT-sikkerhedsværktøjer til egen test
- OpenMP og parallel computing
- Oplevelser med Asus eee pc
- Programming tools for C and Perl
- Remote reverse ssh shell på OpenWRT og lignende
- Sed stream editor, introduktion
- Solaris 10 x86 review til workstation
- Tips til vim editoren
- Wireless network (sikkerhed) for begyndere
- Figurkrigsspil
- Fløng Skole, lidt om skolens historie
- FreeBSD
- ACL filtering for Squid webproxy on FreeBSD 8.x
- Amavisd-new, spamassassin and clamav On FreeBSD 7.2 (and probably 8.0)
- Apache mod proxy on FreeBSD
- Apache, PHP and MySQL on FreeBSD
- APC UPS power failure handling agent
- APC UPS power failure handling agent on FreeBSD
- Apple file share server on FreeBSD 8.1
- Apple TimeMachine backup server on FreeBSD 8.1
- Bitlbee on FreeBSD 7.0
- BSD-sikkerhedsnoter v.0.1
- Cacti Monitoring system on FreeBSD 6.2
- CD Recording in FreeBSD
- Denyhosts on FreeBSD 8
- Denyhosts to protect SSH service from bruteforce attacks in FreeBSD
- Festival text to speech system in FreeBSD 6.2
- File backed encrypted file system on FreeBSD 6.2
- File backed encrypted file system on FreeBSD 6.2
- FreeBSD 6.2 release digt
- FreeBSD gmirror raid 1 setup
- FreeBSD jails note
- GELI encryption of full drive in FreeBSD
- Gnokii SMS support in FreeBSD 8.2
- Host Intrusion Detection System in FreeBSD
- Installing Mailman mailing list software on FreeBSD 7.1
- Intrusion Detection, noter i FreeBSD og OpenBSD
- IPv6, DHCPd, OpenLDAP on FreeBSD
- iTunes server on FreeBSD 8.1
- Munin monitoring system on FreeBSD 6.2 (and 7.2, and 8.0)
- Noter til bogen Mastering FreeBSD and OpenBSD Security del 2
- NTPd on FreeBSD 8.0
- Opdatering af FreeBSD
- OpenVPN on FreeBSD 8.2
- Postfix + Dovecot + MySQL in FreeBSD
- Postfix smarthost i FreeBSD
- Postfixadmin on FreeBSD 6.2 (and probably 7.2 and 8.0)
- Pure-FTPd in FreeBSD 6.2 (and 7.2, and probably 8.0)
- Rootkit-detection in FreeBSD
- Secure erase data on hard drives in FreeBSD
- Setting up PostgreSQL 8.x and phpPgAdmin on FreeBSD 7.1
- Squid webproxy and Junkbuster on FreeBSD 8.x
- Squirrelmail Webmail on FreeBSD 6.2
- Tor relay on FreeBSD 7.2 and 8.0
- TV-kort i FreeBSD
- Unreal IRCd on FreeBSD 7.0
- Update FreeBSD base system and ports
- Webserver, noter i FreeBSD og OpenBSD
- Internet Startside
- Kontakt
- OpenBSD
- Privacy Policy
- Rollespil
- Velkommen til min hjemmeside
- Windows
-
Links til andre sider:
-
Min forrige hjemmeside, nu hosted hos GitHub, stadig i anvendelse i ny og næ