I haven't tested this, but I believe what you wanted was something more like the following:
egrep -e '^(.*;){2}201110' filename.csv The curly brace operators are used to indicate how many times the previous element should be matched. Putting curly braces around a matching pattern is a no-op. You want to follow your pattern group "(.*;)" with the number of matches "{2}". -David On Tue, Jan 24, 2012 at 9:05 AM, William Kreuter <bil...@drizzle.com> wrote: > I want to select every line from a csv file which has the literal "201110" > in the third field. Neither of the following do it. > > egrep -e '^{.*;}{2}201110' filename.csv > > egrep -E '^{.*;}{2}201110' filename.csv > > I haven't really figured out the use of curly braces. It seems that they're > for both grouping (as in the left pair on these lines) and repetition (as in > the right pair). My impression right now is that it's one, or both, of the > curly-brace pairs which is doing something different than I want. > > I'm by no means wedded to egrep, if sed or awk or something can do it in a > few keystrokes. > > Billy -- Omnis Gratiae Solanum Tuberosum Fons Est