FileDocCategorySizeDatePackage
Grep1.javaAPI DocExample1692Fri May 09 15:25:50 BST 2003None

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 Pattern
pattern
The pattern we're looking for
protected Matcher
matcher
The matcher for this pattern
Constructors Summary
public Grep1(String patt)
Construct a Grep1 program

		pattern = Pattern.compile(patt);
		matcher = pattern.matcher("");
	
Methods Summary
public static voidmain(java.lang.String[] argv)
Main will make a Grep object for the 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 BufferedReader(new InputStreamReader(System.in)),
				"(standard input)", false);
		else
			for (int i=1; i<argv.length; i++) {
				pg.process(new BufferedReader(new FileReader(argv[i])),
					argv[i], true);
			}
	
public voidprocess(java.io.BufferedReader inputFile, java.lang.String fileName, boolean printFileName)
Do the work of scanning one file

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


		String inputLine;

		try {
			while ((inputLine = inputFile.readLine()) != null) {
				matcher.reset(inputLine);
				if (matcher.lookingAt()) {
					if (printFileName) {
						System.out.print(fileName + ": ");
					}
					System.out.println(inputLine);
				}
			}
			inputFile.close();
		} catch (IOException e) { System.err.println(e); }