Universität Ulm, Fakultät für Mathematik und Wirtschaftswissenschaften, SAI

Lösung zu Blatt 4 --- Implementierung kleiner Datenbanken unter UNIX (SS 2001)

4 Ein kleiner Grep

#!/usr/local/bin/tclsh

# Number of Arguments correct?
if { $argc < 1 } {
   puts stderr "Wrong number of arguments! Usage: $argv0 Pattern \[files\]"
   exit 1
}
set pat [lindex $argv 0]
if { $argc == 1 } {
   while { [ gets stdin line ] >= 0 } {
      if { [regexp $pat $line] } {
	 puts "$line"
      }
   }
   exit;
}
foreach i [lrange $argv 1 end ] {
   set f [open $i r]
   while { [gets $f line] >= 0 } {
      if { [regexp $pat $line] } {
	 puts "$i: $line"
      }
   }
   close $f
}
exit;

Universität Fakultät SAI

Ingo Melzer, 06. June 2000