csh :t modifier (Was Re: basename(1) (Was Re:argv[0] in shellscript?))

Leo de Wit leo at philmds.UUCP
Sun Jun 26 04:16:11 AEST 1988


In article <709 at ubu.warwick.UUCP> maujd at warwick.UUCP (Geoff Rimmer) writes:
> [other stuff deleted]...
>cat /etc/passwd | sed "s/:[^:]*:[^:]*:[^:]*:/	/" | sed "s/[,:].*//" | sort
>					   ^^TAB^^
>---------------------------------------------------------------------
>	(BTW, anyone got any improvements on this 'sed' line?)
>---------------------------------------------------------------------

You COULD of course use awk (using IFS) ...
but, assuming you're as devoted a sed worshipper as I am, yes, I've got
an improvement:
Don't use the cat; sed can open the file or even the shell can open it for
sed (saves a process).
Don't use sed twice; one is just as good (even faster).

So the result is:

sed -e "s/:[^:]*:[^:]*:[^:]*:/	/" -e "s/[,:].*//" /etc/passwd | sort

Now maybe even the sed could be improved upon ...?

      Leo.



More information about the Comp.unix.questions mailing list