diff --git a/Labb8/file.txt b/Labb8/file.txt index 01d8f47..6742d6b 100644 --- a/Labb8/file.txt +++ b/Labb8/file.txt @@ -8,3 +8,4 @@ I matematiken kan vi räkna ut radius Eller var det någon annan rad? Det här är iaf den sista raden i en text om rader. +En rad där vissa ord upprepar sig, som t.ex. ord diff --git a/Labb8/laborationsrapport.md b/Labb8/laborationsrapport.md index e93bb0d..46e4b94 100644 --- a/Labb8/laborationsrapport.md +++ b/Labb8/laborationsrapport.md @@ -81,9 +81,44 @@ 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" }' + +# Byt ut andra förekomsten av ordet ord mot bilar +cat file.txt | sed 's/ord/bilar/2' + +# Byt ut Den mot Och på andra raden +cat file.txt | sed '2s/Den/Och/' + +# Byt ut order rader mot line, men bara på den rad som börjar på ordet Många +cat file.txt | sed '/^Många/s/rader/lines/' + +# Ta bort tredje och fjärde raden +cat file.txt | sed '2,4d' + +# Ta bort rader från rad två till sista raden +cat file.txt | sed '2,$d' + +# Lägg till (append) "Hej på dig" efter den tredje raden +cat file.txt | sed '3a\Hej på dig' + +# Lägg till (inster) "Hej på dig" före den tredje raden +cat file.txt | sed '3i\Hej på dig' + +# Byt ut den trejde raden mot en helt ny rad (change) +cat file.txt | sed '3c\Den nya raden' + +# Byt ut hela texten på raden som börjar med Långa (change) +cat file.txt | sed '/^Långa/c\Den nya raden' + +# Byt ut 1, 2 och 3 mot 7,8 och 9 i den ordning de träffas på +cat numbers.txt | sed 'y/123/789/' + +# Skriv endast ut rad 2 till 5 +cat file.txt | sed -n '2,5p' + +# Skriv ut endast rad 2 och till 5 till filen newfile.txt +cat file.txt | sed -n '2,5w newfile.txt' ``` Fler exempel finns i denna mappen i form av bland annat en rad awk-skript. - ## Reflektion ## diff --git a/Labb8/listbashusers2.sh b/Labb8/listbashusers2.sh new file mode 100644 index 0000000..5128eab --- /dev/null +++ b/Labb8/listbashusers2.sh @@ -0,0 +1,12 @@ +BEGIN { + print "User Shell" + print "---- -----" + FS=":" +} + +/bash/ { print $1 " "$7 } + +END { + print "\nNo more Bash-users to list" +} + diff --git a/Labb8/myls.awk b/Labb8/myls.awk new file mode 100644 index 0000000..8845f98 --- /dev/null +++ b/Labb8/myls.awk @@ -0,0 +1,3 @@ +/^-/ { print "File -> " $0 } +/^d/ { print "Directory -> " $0 } +/^l/ { print "Link -> " $0 } diff --git a/Labb8/newfile.txt b/Labb8/newfile.txt new file mode 100644 index 0000000..ff936db --- /dev/null +++ b/Labb8/newfile.txt @@ -0,0 +1,4 @@ +Den andra raden +Många rader kan det bli +Långa rader också +Kanske en rad till diff --git a/Labb8/numbers.txt b/Labb8/numbers.txt new file mode 100644 index 0000000..d859ace --- /dev/null +++ b/Labb8/numbers.txt @@ -0,0 +1,5 @@ +Rad 1 +Rad 2 +Rad 3 +Rad 4 +Rad 5 diff --git a/Labb8/ovning1.sh b/Labb8/ovning1.sh new file mode 100755 index 0000000..2289920 --- /dev/null +++ b/Labb8/ovning1.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# Jack-Benny Persson +# LX13 +# Exercise 1, lab 8 (remove the last line of /var/log/syslog) + +sed '$d' /var/log/syslog + +exit 0 diff --git a/Labb8/ovning2_ver1.sh b/Labb8/ovning2_ver1.sh new file mode 100755 index 0000000..1beed93 --- /dev/null +++ b/Labb8/ovning2_ver1.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Jack-Benny Persson +# LX13 +# Exercise 2, lab 8 (make an advanced ls printout) + +# Binaries +Sed="/bin/sed" + +# Sanity check +if [ $# -ne 1 ]; then + echo "`basename $0` requires one argument" + exit 1 +fi + +if [ ! -x $Sed ]; then + echo "Can't execute $Sed" + exit 1 +fi + +# Main +ls -l $1 | $Sed '{ +s/^d/Directory-> d/ +s/^l/Link -> l/ +s/^-/File -> -/ +}' + +exit 0 diff --git a/Labb8/ovning2_ver2.sh b/Labb8/ovning2_ver2.sh new file mode 100755 index 0000000..afc6913 --- /dev/null +++ b/Labb8/ovning2_ver2.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# Jack-Benny Persson +# LX13 +# Exercise 2, lab 8 (make an advanced ls printout) + +# Binaries +Awk="/usr/bin/awk" + +# Variables +MyLs="myls.awk" + +# Sanity check +if [ $# -ne 1 ]; then + echo "`basename $0` requires one argument" + exit 1 +fi + +if [ ! -x $Awk ]; then + echo "Can't execute $Awk" + exit 1 +fi + +if [ ! -r $MyLs ]; then + echo "Can't find file $MyLs" + exit 1 +fi + +# Main +ls -l $1 | awk -f $MyLs + +exit 0