Rearranged files in lab 8 and added a lab report and some examples

This commit is contained in:
Jack-Benny Persson 2013-12-28 13:14:33 +01:00
parent 446e0cd44f
commit 656f1a0eb1
8 changed files with 58 additions and 17 deletions

3
Labb8/findconf.awk Normal file
View File

@ -0,0 +1,3 @@
BEGIN { print "I found the following conf files:\n" }
/^.*\.conf$/ { print $9 } # Changed < to ^ (what does < mean in this context?)
END { print "\nDone." }

View File

@ -32,10 +32,58 @@ gawk eller mawk.
### Reguljära uttryck ###
#### BRE ####
BRE står för Basic Regular Expression
BRE står för Basic Regular Expression och innehåller bland annat följande
reguljära uttryck
Symbol | Mening
------ | ------
^ | Början av raden
$ | Slutet av raden
. | Ett och endast ett tecken
* | Valfritt antal gånger av tecknet
[] | Klass av tecken, t.ex. [ybh]ay matchar yay, hay, bay
[^] | Negativ klass av tecken, t.ex. [^yh]ay matchar INTE hay eller yay
[-] | En serie av tecken, t.ex. [0-9] matchar alla tecken mellan 0 och 9
#### ERE ####
ERE står för Extended Regular Expression
ERE står för Extended Regular Expression. Förutom ovanstående har ERE även
följande reguljära uttryck.
Symbol | Mening
------ | ------
? | Ingen eller en gång
+ | En eller flera gånger (minst en gång)
{} | Upprepa antal ggr, t.ex. b{3} matchar 3 st b
{,} | T.ex. {1,3} matchar minst en gång, men max 3 gånger
&#124; | OR/ELLER, t.ex. cat|dog matchar cat eller dog
() | Gruppera uttryck, t.ex. ca(t|b) eller Hej(san)
### Exempel och experiment med Sed & Awk ###
Dessa exempel använder filerna file.txt och name.txt som finns här i mappen
Mycket är taget från laborationsbeskrivningen och boken.
```bash
# Matchar Många/många/Långa/långa
sed -n '/^[MmLl]ånga/p' file.txt
# Skriver Spock -- framför varje rad
sed 's/^/Spock -- /g' file.txt
# Skriver ut fält 1, 3 och 3
awk '{ print $1 $2 $3 }' names.txt
# Skriver ut fält 1, 2 och 3 med mellanslag mellan fält ett och två och
# --> mellan 2 och 3
awk '{ print $1" "$2" --> "$3 }' names.txt
# Det egna ls-kommandot från laborationen, dock modifierat för att fungera
# då det 8:e fältet är tiden, inte filnamnet
ls -l | grep -v total | awk '{ print $9"\t är "$5" bytes stor" }'
# Mer test från laborationsbeskrivningen
ls -l /etc/| awk 'BEGIN { print "Found:\n" } /^.*\.conf$/ { print $9 } END { print "\nDone" }'
```
Fler exempel finns i denna mappen i form av bland annat en rad awk-skript.
## Reflektion ##

2
Labb8/listbashusers.awk Normal file
View File

@ -0,0 +1,2 @@
BEGIN { FS=":"; OFS="\n"; print "The following users uses Bash" }
/\/bin\/bash/ { print $1 }

View File

@ -1,4 +0,0 @@
# Sed & Awk tests #
Most of these examples are from lab 8 and the book (chapter 18, Linux Command Line and
Shell Scripting Bible, 2nd edition).

View File

@ -1,11 +0,0 @@
# Misc notes on sed & awk #
```bash
sed -n '/^[MmLl]ånga/p' file.txt # Match Många/många/Långa/långa.
sed 's/^/Spock -- /g' file.txt # Put "Spock -- " in front of
# every row.
awk '{ print $1 $2 $3 }' names.txt # Print field 1, 2 and 3.
awk '{ print $1" "$2" --> "$3 }' names.txt # Print field 1, 2 and 3, with
# spaces between 1 and 2 and
# --> between 2 and 3.
```

3
Labb8/web.awk Normal file
View File

@ -0,0 +1,3 @@
BEGIN { print "<html><head><title>ett skript</title><head><body><pre>" }
{ print $0 }
END { print "</pre></body></html>" }