In article <81eb30fb297893749f5c1e211f08c7e4.squirrel at mail.5-cent.us>, <m.roth at 5-cent.us> wrote: > wwp wrote: > > On Wed, 15 Aug 2012 15:22:10 +0100 Tony Molloy <tony.molloy at ul.ie> wrote: > >> > >> I'm looking for a command to extract lines from a large text file, a > >> password file. A typical user has a username made from a letter > >> followed by their id-number. > >> > >> m9718508:pw:9301:840: Lynch :/home/pgstud/m9718508:/bin/bash > >> > >> So for instance if I need to extract lines where; > >> the 1st field, the username begins with an m > >> and the 4th field, the group contains exactly 850 > >> > >> cat passwdfile | grep ^m | grep 850 > output > >> > >> is close but fails if the value 850 appears outside the 4th field. In > >> the above example which should be ignored 850 appears in the username > >> and home directory and is therefore extracted. > > > > Something like `grep -E '^m.+:.*:.*:850:'` maybe? > > Complicated. > > awk '{ if ($1 ~ /^m/ && $4 == "850" ) { print $0;}}' /etc/passwd awk -F: '{ if ($1 ~ /^m/ && $4 == "850" ) { print $0;}}' /etc/passwd Cheers Tony -- Tony Mountifield Work: tony at softins.co.uk - http://www.softins.co.uk Play: tony at mountifield.org - http://tony.mountifield.org