Re: [CentOS] Extract lines from text file
Hello m.r...@5-cent.us, On Wed, 15 Aug 2012 11:47:21 -0400 m.r...@5-cent.us wrote: > wwp wrote: > > On Wed, 15 Aug 2012 15:22:10 +0100 Tony Molloy 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 I found that regexp particularly simple :-D. Not here to troll, but simple or complicated, I think it's only about a bit of knowledge (understanding), a learning curve. Personally I don't feel comfortable w/ awk expressions/language. Not saying that one if better than the other - I would rather think that knowing both is way better. Don't be afraid with regular expressions, there's nothing really complex about most of them! Regards, -- wwp signature.asc Description: PGP signature ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
On Wednesday 15 August 2012 20:53:33 m.r...@5-cent.us wrote: > Tony Molloy wrote: > > On Wednesday 15 August 2012 19:46:42 Les Mikesell wrote: > >> On Wed, Aug 15, 2012 at 1:26 PM, Tony Molloy > > > > wrote: > >> >> ]$ cat testcentoslist | egrep ^m.*:.*:.*:850: > >> >> m9718308:pw:9301:850: Lynch :/home/pgstud/m9718508:/bin/bash > >> > > >> > Exactly what I needed. I'll just drop the cat as a later > >> > poster pointed out. > >> > >> sed -n -e '/pattern/p' can match anything grep would do and > >> might be even more useful if you want substitutions for > >> subsequent use. And of course perl can do anything sed can do, > >> and then some... > > > > True true, and of course C could do anything and everything ;-) > > > > But all I need is a simple script which will be run once a year > > to remove the graduated students from the password file. > > Ah, but are you sure they're not just dropped out for a term, or > about to become indentured servants, er, grad students? In that > case, maybe just change their login shell to /bin/noLogin > > mark > No these are 4th year graduated students. If they stay on as post graduate students they have to re-register. So clean them out I say ;-) Tony > > > ___ > CentOS mailing list > CentOS@centos.org > http://lists.centos.org/mailman/listinfo/centos > ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
On 08/15/2012 10:22 AM, Tony Molloy wrote: > > Hi, > > 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. > > Any ideas. > > Thanks, > > Tony > ___ > CentOS mailing list > CentOS@centos.org > http://lists.centos.org/mailman/listinfo/centos > [mlapier@mushroom ~]$ cat tmpfile m9718508:pw:9301:840: Lynch :/home/pgstud/m9718508:/bin/bash m1234567:pw:9302:850: Lynch :/home/pgstud/m1234567:/bin/bash [mlapier@mushroom ~]$ grep ^m tmpfile | grep ":850:" m1234567:pw:9302:850: Lynch :/home/pgstud/m1234567:/bin/bash [mlapier@mushroom ~]$ -- _ °v° /(_)\ ^ ^ Mark LaPierre Registerd Linux user No #267004 www.counter.li.org ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
Tony Molloy wrote: > On Wednesday 15 August 2012 19:46:42 Les Mikesell wrote: >> On Wed, Aug 15, 2012 at 1:26 PM, Tony Molloy > wrote: >> >> ]$ cat testcentoslist | egrep ^m.*:.*:.*:850: >> >> m9718308:pw:9301:850: Lynch :/home/pgstud/m9718508:/bin/bash >> > >> > Exactly what I needed. I'll just drop the cat as a later poster >> > pointed out. >> >> sed -n -e '/pattern/p' can match anything grep would do and might >> be even more useful if you want substitutions for subsequent use. >> And of course perl can do anything sed can do, and then some... >> > > True true, and of course C could do anything and everything ;-) > > But all I need is a simple script which will be run once a year to > remove the graduated students from the password file. > Ah, but are you sure they're not just dropped out for a term, or about to become indentured servants, er, grad students? In that case, maybe just change their login shell to /bin/noLogin mark ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
On Wednesday 15 August 2012 19:46:42 Les Mikesell wrote: > On Wed, Aug 15, 2012 at 1:26 PM, Tony Molloy wrote: > >> ]$ cat testcentoslist | egrep ^m.*:.*:.*:850: > >> m9718308:pw:9301:850: Lynch :/home/pgstud/m9718508:/bin/bash > > > > Exactly what I needed. I'll just drop the cat as a later poster > > pointed out. > > sed -n -e '/pattern/p' can match anything grep would do and might > be even more useful if you want substitutions for subsequent use. > And of course perl can do anything sed can do, and then some... > True true, and of course C could do anything and everything ;-) But all I need is a simple script which will be run once a year to remove the graduated students from the password file. Regards, Tony ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
On Wed, Aug 15, 2012 at 1:26 PM, Tony Molloy wrote: >>> >> ]$ cat testcentoslist | egrep ^m.*:.*:.*:850: >> m9718308:pw:9301:850: Lynch :/home/pgstud/m9718508:/bin/bash >> > > Exactly what I needed. I'll just drop the cat as a later poster > pointed out. > sed -n -e '/pattern/p' can match anything grep would do and might be even more useful if you want substitutions for subsequent use. And of course perl can do anything sed can do, and then some... -- Les Mikesell lesmikes...@gmail.com ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
On Wednesday 15 August 2012 15:36:09 Marcelo Beckmann wrote: > Em 15-08-2012 11:22, Tony Molloy escreveu: > > Hi, > > > > 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. > > > > Any ideas. > > ]$ cat testcentoslist > m9718508:pw:9301:840: Lynch :/home/pgstud/m9718508:/bin/bash > m9718308:pw:9301:850: Lynch :/home/pgstud/m9718508:/bin/bash > m9718208:pw:9301:840: Lynch :/home/pgstud/m9718508:/bin/bash > m9718508:pw:9301:840: Lynch :/home/pgstud/m9718908:/bin/bash > > ]$ cat testcentoslist | egrep ^m.*:.*:.*:850: > m9718308:pw:9301:850: Lynch :/home/pgstud/m9718508:/bin/bash > Exactly what I needed. I'll just drop the cat as a later poster pointed out. Thanks to all who replied. Tony ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
Tilman Schmidt wrote: > Am 15.08.2012 16:36, schrieb Marcelo Beckmann: >> Em 15-08-2012 11:22, Tony Molloy escreveu: > [...] >>> cat passwdfile | grep ^m | grep 850 > output > [...] >> ]$ cat testcentoslist | egrep ^m.*:.*:.*:850: > > http://en.wikipedia.org/wiki/Cat_%28Unix%29#Useless_use_of_cat > > Because a cat is a terrible thing to waste. > And why would you want to disturb our Lords & Masters? I mean, why are *we* here? mark -- The truth is out, we know at last: Dogs have masters, cats have staff. ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
Am 15.08.2012 16:36, schrieb Marcelo Beckmann: > Em 15-08-2012 11:22, Tony Molloy escreveu: [...] >> cat passwdfile | grep ^m | grep 850 > output [...] > ]$ cat testcentoslist | egrep ^m.*:.*:.*:850: http://en.wikipedia.org/wiki/Cat_%28Unix%29#Useless_use_of_cat Because a cat is a terrible thing to waste. SCNR, T. ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
Tony Mountifield wrote: > In article <81eb30fb297893749f5c1e211f08c7e4.squir...@mail.5-cent.us>, > wrote: >> wwp wrote: >> > On Wed, 15 Aug 2012 15:22:10 +0100 Tony Molloy >> 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 Or awk 'BEGIN { FS=":";}{ if ($1 ~ /^m/ && $4 == "850" ) { print $0;}}' /etc/passwd mark ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
In article <81eb30fb297893749f5c1e211f08c7e4.squir...@mail.5-cent.us>, wrote: > wwp wrote: > > On Wed, 15 Aug 2012 15:22:10 +0100 Tony Molloy 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: t...@softins.co.uk - http://www.softins.co.uk Play: t...@mountifield.org - http://tony.mountifield.org ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
wwp wrote: > On Wed, 15 Aug 2012 15:22:10 +0100 Tony Molloy 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 ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
Em 15-08-2012 11:22, Tony Molloy escreveu: > > Hi, > > 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. > > Any ideas. ]$ cat testcentoslist m9718508:pw:9301:840: Lynch :/home/pgstud/m9718508:/bin/bash m9718308:pw:9301:850: Lynch :/home/pgstud/m9718508:/bin/bash m9718208:pw:9301:840: Lynch :/home/pgstud/m9718508:/bin/bash m9718508:pw:9301:840: Lynch :/home/pgstud/m9718908:/bin/bash ]$ cat testcentoslist | egrep ^m.*:.*:.*:850: m9718308:pw:9301:850: Lynch :/home/pgstud/m9718508:/bin/bash -- Marcelo Beckmann Suporte Corporativo - supo...@webers.com.br Webers Tecnologia - http://www.webers.com.br Curitiba (PR) (41) 3094-6600 Rio de Janeiro (RJ) (21) 4007-1207 São Paulo (SP) (11) 4007-1207 ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
Hello Tony, On Wed, 15 Aug 2012 15:22:10 +0100 Tony Molloy wrote: > > Hi, > > 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? Regards, -- wwp signature.asc Description: PGP signature ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Re: [CentOS] Extract lines from text file
Greetings, On Wed, Aug 15, 2012 at 7:52 PM, Tony Molloy wrote: > > Hi, > > > 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 > cut -d: -f1,4 -- Regards, Rajagopal ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
[CentOS] Extract lines from text file
Hi, 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. Any ideas. Thanks, Tony ___ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos