FileDocCategorySizeDatePackage
Grep1.javaAPI DocExample1592Tue Oct 09 15:27:12 BST 2001None

Grep1

public class Grep1 extends Object
A command-line grep-like program. No options, but takes a pattern and an arbitrary list of text files.

Fields Summary
protected RE
pattern
The pattern we're looking for
protected BufferedReader
d
The Reader for the current file
Constructors Summary
public Grep1(String arg)

		// compile the regular expression
		pattern = new RE(arg);
	
Methods Summary
public static voidmain(java.lang.String[] argv)
Construct a Grep object for each pattern, and run it on all input files listed in argv.


		if (argv.length < 1) {
		    System.err.println("Usage: Grep1 pattern [filename]");
		    System.exit(1);
		}

		Grep1 pg = new Grep1(argv[0]);

		if (argv.length == 1)
			pg.process(new InputStreamReader(System.in), "(standard input)", false);
		else
			for (int i=1; i<argv.length; i++) {
				pg.process(new FileReader(argv[i]), argv[i], true);
			}
	
public voidprocess(java.io.Reader ifile, java.lang.String fileName, boolean printFileName)
Do the work of scanning one file

param
ifile Reader Reader object already open
param
fileName String Name of the input file
param
printFileName Boolean - true to print filename before lines that match.


		String line;

		try {
			d = new BufferedReader(ifile);
		    
			while ((line = d.readLine()) != null) {
				if (pattern.match(line)) {
					if (printFileName)
						System.out.print(fileName + ": ");
					System.out.println(line);
				}
			}
			d.close();
		} catch (IOException e) { System.err.println(e); }