wwp wrote:
On Wed, 15 Aug 2012 15:22:10 +0100 Tony Molloy tony.molloy@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
mark "awk! awk!*"
* No, I'm still not a seagull....