On Sun, Mar 30, 2014 at 8:31 AM, Raf Czlonka <[email protected]> wrote:
> Hi all,
>
> Let me start by saying "Thank you" for the great job you are all doing
> for the OpenBSD project and community.
>
> I have tried sending this email to www@ but it bounced (reported in a
> separate email) hence, for a lack of a better place, resending it here.
>
> In the FAQ 2.4[0] there's an example of how to get the content of a
> particular line from a file with the source code:
>
> # cat -n pf.c | head -n 3872 | tail -n 1
>
> While, in this instance, it does not fall under the "Useless use of
> cat"[1] (as the '-n' option provides line numbering) the command
> construct in unnecessarily long (three commands instead of one).
>
> I can understand (I think) that the very reason of it being that
> "complex" is the fact someone wanted for the line number to be included
> in the output. This, however, is superfluous, as we explicitly "ask" for
> the line in question while using 'head | tail' pipe, so the whole thing
> can be shortened to:
>
> # head -n 3872 pf.c | tail -n 1
>
> IMVHO, since the FAQ section is mostly aimed at new, often
> inexperienced, users it may be a good idea to start them off with a good
> habit of using the simplest tool for the job, instead of overly complex
> constructs.
>
> One such way would be to use 'sed' instead:
>
> # sed -n 3872p pf.c
>
> I have included a small patch if you'd care to apply it to said page.
>
> [0] http://www.openbsd.org/faq/faq2.html#Bugs
> [1] http://partmaps.org/era/unix/award.html
>
> Best regards,
>
> Raf
>
> [demime 1.01d removed an attachment of type text/x-diff]
>

This sed syntax is WAY better, i guess the cat -n was explanatory and
thats why it was use instead of directly passing the file to head.
so because it is educational , i would put :
cat -n pf.c | sed -n 3872p pf.c

wihch self explain than line 3872 is printed.

-- 
---------------------------------------------------------------------------------------------------------------------
() ascii ribbon campaign - against html e-mail
/\

Reply via email to