diff --git a/20230320/grep-1.txt b/20230320/grep-1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..923929f0b3f9a94b3260e0b6e7b4b956e12fb085
--- /dev/null
+++ b/20230320/grep-1.txt
@@ -0,0 +1,16 @@
+cassini/home/peter/bo/2023ss/bs/20230320> cat test3.txt
+Test
+Noch ein Test
+Ist dieser Test auch einer?
+cassini/home/peter/bo/2023ss/bs/20230320> grep Test *.txt
+test2.txt:Dies ist ein Test.
+test3.txt:Test
+test3.txt:Noch ein Test
+test3.txt:Ist dieser Test auch einer?
+test.txt:Dies ist ein Test.
+cassini/home/peter/bo/2023ss/bs/20230320> grep "^Test" *.txt
+test3.txt:Test
+cassini/home/peter/bo/2023ss/bs/20230320> grep "Test$" *.txt
+test3.txt:Test
+test3.txt:Noch ein Test
+cassini/home/peter/bo/2023ss/bs/20230320>
diff --git a/20230320/grep-2.txt b/20230320/grep-2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fa5d751ced38b4712c376b8048d1538903463a6d
--- /dev/null
+++ b/20230320/grep-2.txt
@@ -0,0 +1,11 @@
+cassini/home/peter/bo/2023ss/bs/20230320> grep "^[Tt]est" *.txt
+grep-1.txt:Test
+grep-1.txt:test2.txt:Dies ist ein Test.
+grep-1.txt:test3.txt:Test
+grep-1.txt:test3.txt:Noch ein Test
+grep-1.txt:test3.txt:Ist dieser Test auch einer?
+grep-1.txt:test.txt:Dies ist ein Test.
+grep-1.txt:test3.txt:Test
+grep-1.txt:test3.txt:Test
+grep-1.txt:test3.txt:Noch ein Test
+test3.txt:Test
diff --git a/20230320/grep-3.txt b/20230320/grep-3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b1157051756c103647ee0656324a8b4cbf2be499
--- /dev/null
+++ b/20230320/grep-3.txt
@@ -0,0 +1,9 @@
+cassini/home/peter/bo/2023ss/bs/20230320> cat test5.txt
+Test
+Tst
+Teeeeest!
+Tääääääääst!
+cassini/home/peter/bo/2023ss/bs/20230320> grep "Te*st" test5.txt
+Test
+Tst
+Teeeeest!
diff --git a/20230320/grep-4.txt b/20230320/grep-4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d9d3c0a46371c3348c0e56397961f21c5d1d7199
--- /dev/null
+++ b/20230320/grep-4.txt
@@ -0,0 +1,15 @@
+Test
+Tst
+Teeeeest!
+Tääääääääst!
+Teääääääääst!
+cassini/home/peter/bo/2023ss/bs/20230320> grep "Te*st" test6.txt
+Test
+Tst
+Teeeeest!
+cassini/home/peter/bo/2023ss/bs/20230320> grep "T[eä]*st" test6.txt
+Test
+Tst
+Teeeeest!
+Tääääääääst!
+Teääääääääst!
diff --git a/20230320/grep-5.txt b/20230320/grep-5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f595d9cdb00dec668bdee24d04c52b65af61cc18
--- /dev/null
+++ b/20230320/grep-5.txt
@@ -0,0 +1,15 @@
+cassini/home/peter/bo/2023ss/bs/20230320> grep T[eä]*st test6.txt
+Test
+Tst
+Teeeeest!
+Tääääääääst!
+Teääääääääst!
+cassini/home/peter/bo/2023ss/bs/20230320> grep t[eä]*st test6.txt
+cassini/home/peter/bo/2023ss/bs/20230320> ls -l t[eä]*st
+ls: Zugriff auf 't[eä]*st' nicht möglich: Datei oder Verzeichnis nicht gefunden
+cassini/home/peter/bo/2023ss/bs/20230320> ls -l test[0-9].txt
+-rw-r--r-- 1 peter peter 19 Mär 20 16:41 test2.txt
+-rw-r--r-- 1 peter peter 47 Mär 20 17:01 test3.txt
+-rw-r--r-- 1 peter peter 66 Mär 20 17:03 test4.txt
+-rw-r--r-- 1 peter peter 40 Mär 20 17:05 test5.txt
+-rw-r--r-- 1 peter peter 62 Mär 20 17:06 test6.txt
diff --git a/20230320/grep-6.txt b/20230320/grep-6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..215d1f28323e0c434dae4c934b7ae3ea20e580bd
--- /dev/null
+++ b/20230320/grep-6.txt
@@ -0,0 +1,13 @@
+cassini/home/peter/bo/2023ss/bs/20230320> grep "T.st" test6.txt
+Test
+cassini/home/peter/bo/2023ss/bs/20230320> grep "T.ä*st" test6.txt
+Test
+Tääääääääst!
+Teääääääääst!
+cassini/home/peter/bo/2023ss/bs/20230320> grep "T.*st" test6.txt
+Test
+Tst
+Teeeeest!
+Tääääääääst!
+Teääääääääst!
+cassini/home/peter/bo/2023ss/bs/20230320>
diff --git a/20230320/grep-7.txt b/20230320/grep-7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..57febd0a770ef87b2078855fabc54866b0e3455d
--- /dev/null
+++ b/20230320/grep-7.txt
@@ -0,0 +1,9 @@
+cassini/home/peter/bo/2023ss/bs/20230320> grep "T.*st" test6.txt
+Test
+Tst
+Teeeeest!
+Tääääääääst!
+Teääääääääst!
+cassini/home/peter/bo/2023ss/bs/20230320> grep "T[^e]*t" test6.txt
+Tst
+Tääääääääst!
diff --git a/20230320/hello-01.c b/20230320/hello-01.c
new file mode 100644
index 0000000000000000000000000000000000000000..b19d80e9bd0bd7c5ed8f54b20c6a50d9166f03ac
--- /dev/null
+++ b/20230320/hello-01.c
@@ -0,0 +1,7 @@
+#include <stdio.h>
+
+int main (void)
+{
+  printf ("Hello, world!\n");
+  return 0;
+}
diff --git a/20230320/hello-02.c b/20230320/hello-02.c
new file mode 100644
index 0000000000000000000000000000000000000000..11a825de39e7773d52165d96a664242598e27db7
--- /dev/null
+++ b/20230320/hello-02.c
@@ -0,0 +1,7 @@
+#include <stdio.h>
+
+int main (void)
+{
+  printf ("The answer is: %d\n", 42);
+  return 0;
+}
diff --git a/20230320/test3.txt b/20230320/test3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6fb4aafe680ff17c5446103cb926258ea3b0d190
--- /dev/null
+++ b/20230320/test3.txt
@@ -0,0 +1,3 @@
+Test
+Noch ein Test
+Ist dieser Test auch einer?
diff --git a/20230320/test4.txt b/20230320/test4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4a9ac58decf5fca07ef94a90f163bb19b451ac2a
--- /dev/null
+++ b/20230320/test4.txt
@@ -0,0 +1,4 @@
+Test
+Noch ein Test
+Ist dieser Test auch einer?
+Jaaa! Teeeeeeeest!
diff --git a/20230320/test5.txt b/20230320/test5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6f30a7923b85d1d05968f62d104a6f2569f5af29
--- /dev/null
+++ b/20230320/test5.txt
@@ -0,0 +1,4 @@
+Test
+Tst
+Teeeeest!
+Tääääääääst!
diff --git a/20230320/test6.txt b/20230320/test6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..16c344b470a5700ec170b39b900fbe4a702046f8
--- /dev/null
+++ b/20230320/test6.txt
@@ -0,0 +1,5 @@
+Test
+Tst
+Teeeeest!
+Tääääääääst!
+Teääääääääst!
diff --git a/20230320/vic b/20230320/vic
new file mode 100755
index 0000000000000000000000000000000000000000..1c1b411ce25ffac5b1853d66b67b08981dd34d0d
--- /dev/null
+++ b/20230320/vic
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+debug=false
+
+if [ $# -gt 0 ]; then
+  $debug && echo "parameters = $@"
+  shift $(( $# - 1 ))
+  file_template="$1"
+else
+  file_template=$(ls -rt *.c *.cpp *.sh *.py *.tex *.diff 2>/dev/null | tail -1)
+fi
+
+$debug && echo "file_template = $file_template"
+
+file_extension=$(echo $file_template | sed -e 's/.*\.\(.*$\)/\1/')
+file_base=$(echo $file_template | sed -e 's/\(.*\)\..*$/\1/')
+
+$debug && echo "file_extension = $file_extension"
+$debug && echo "file_base = $file_base"
+
+file_number=$(echo $file_base | sed -e 's/^.*-\([0-9]*$\)/\1/')
+file_stem=$(echo $file_base | sed -e 's/^\(.*\)-[0-9]*$/\1/')
+
+$debug && echo "file_number = $file_number"
+$debug && echo "file_number = $file_stem"
+
+while [ -e "$file_stem-$file_number.$file_extension" \
+        -o -e "$file_stem-0$file_number.$file_extension" ]; do
+  file_number=$(echo "$file_number" | sed -e 's/^0//g')
+  $debug && echo "file_number = $file_number"
+  file_number=$((file_number + 1))
+  file_number=$(printf "%02d" "$file_number")
+done
+file_number=$(echo "$file_number" | sed -e 's/^0//g')
+$debug && echo "file_number = $file_number"
+new_file_name="$file_stem-$(printf "%02d" $file_number).$file_extension"
+
+$debug && echo "new_file_name = $new_file_name" && read junk
+
+cp -pi "$file_template" "$new_file_name"
+#$EDITOR "$new_file_name"
+/usr/bin/vim -X -c 'set sw=2' -c 'set expandtab' -c 'set ai' -c 'set nowrap' \
+  "$new_file_name"
+clear
+cat "$new_file_name"