00001 #include <cppscript>
00002
00003 void search_for_string_in_file(var str, var filename)
00004 {
00005 try
00006 {
00007 var file = read_file(filename);
00008 finally( file["close"] );
00009 var line_no = 1;
00010 foreach(line, lines(file))
00011 {
00012 if( string_find( line, str ) )
00013 writeln( filename + ":" + line_no + " " + line );
00014 ++line_no;
00015 }
00016 }
00017 catch( var )
00018 {
00019 err()["writeln"]("Error reading from file " + filename);
00020 }
00021 }
00022
00023 void search_for_string_in_files(var str, var files)
00024 {
00025 foreach( file, files ) search_for_string_in_file(str, file);
00026 }
00027
00028 var script_main(var input)
00029 {
00030 if(input.size()<2)
00031 {
00032 err()["writeln"]("Usage: grep search_term file1 file2 ...");
00033 return 1;
00034 }
00035 search_for_string_in_files(input[0], tail(input));
00036 return 0;
00037 }