1838330 Members
3339 Online
110125 Solutions
New Discussion

Re: sed?

 
ericfjchen
Regular Advisor

sed?

May you use sed to achieve the same as below,
---
awk -F: '{if(substr($1,4,1)=="k") print $1 }' /etc/passwd
---
3 REPLIES 3
harry d brown jr
Honored Contributor

Re: sed?

Using sed is probably possible, but this works also:

cut -d":" -f1 /etc/passwd |grep "^...k"

live free or die
harry d brown jr
Live Free or Die
harry d brown jr
Honored Contributor

Re: sed?


Here is the "sed only" solution:


sed -n -e 's/^\([^:]*\):.*/\1/' -e 's/\(^[A-Za-z0-9_]\{3,3\}k.*\).*/\1/p' /etc/passwd

live free or die
harry d brown jr
Live Free or Die
Matti_Kurkela
Honored Contributor

Re: sed?

A shorter sed solution:
sed -n -e 's/^\([^:]\{3,3\}k[^:]*\):.*$/\1/p'
However, I prefer something like Harry's cut-and-grep solution in cases like this.
MK