Rearranged files in lab 8 and added a lab report and some examples
This commit is contained in:
parent
446e0cd44f
commit
656f1a0eb1
3
Labb8/findconf.awk
Normal file
3
Labb8/findconf.awk
Normal 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." }
|
@ -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
|
||||
| | 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
2
Labb8/listbashusers.awk
Normal file
@ -0,0 +1,2 @@
|
||||
BEGIN { FS=":"; OFS="\n"; print "The following users uses Bash" }
|
||||
/\/bin\/bash/ { print $1 }
|
@ -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).
|
||||
|
@ -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
3
Labb8/web.awk
Normal file
@ -0,0 +1,3 @@
|
||||
BEGIN { print "<html><head><title>ett skript</title><head><body><pre>" }
|
||||
{ print $0 }
|
||||
END { print "</pre></body></html>" }
|
Loading…
x
Reference in New Issue
Block a user