Hallo, Am Fri, 24 Jun 2005, Christof Janssen schrieb:
ich möchte in einem text nacheinander verschiednen Jahreszahlen 1900, 1901 etc suchen und die zahl der Einträge bestimmen. Für ein bestimmtes Muster (zB 1900) macht
grep -c 1900 Text
genau was ich möchte. Wie kann ich eine shellvariable, zB i = 1900, 1901, ... 2000 in das Suchmuster für grep konvertieren, damit ich die Suche automatisieren kann ? oder gibt es bessere Mittel und Wege (möglichst auf shell basis) ?
perl -we ' while( defined( $_ = <> ) ) { s/(19\d{2}|2000)/$m{$1}++/eg; } END{ foreach(sort keys %m) { print "$_: $m{$_}\n"; } }' DATEI Das hat den Vorteil, dass die Datei nur einmal gelesen wird und somit die langsame Startzeit gegenueber for i in ...; do grep -c "$i" DATEI wohl mehr als wett macht. Ausserdem liest das auch von STDIN wenn keine DATEI angegeben wird. Das Muster legst du bequem ueber die Regexp zwischen den ersten beiden // von s///eg fest. Siehe 'perldoc perlre'. -dnh -- Human beings were created by water to transport it uphill. -- BSD fortune file