Re: a sed question

Liste des GroupesRevenir à cu shell 
Sujet : Re: a sed question
De : Keith.S.Thompson+u (at) *nospam* gmail.com (Keith Thompson)
Groupes : comp.unix.shell
Date : 21. Dec 2024, 22:41:22
Autres entêtes
Organisation : None to speak of
Message-ID : <87bjx4ww71.fsf@nosuchdomain.example.com>
References : 1 2 3 4
User-Agent : Gnus/5.13 (Gnus v5.13)
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
On 21.12.2024 13:17, Salvador Mirzo wrote:
[...]
As previously mentioned, 'sed' might not be the best choice for
developing such scripts; you might want to consider to learn 'awk'.
>
$ git log --oneline | head -1 | awk '{print $1}'
2566d31
>
With Awk you don't need 'head', it can be done like this
>
$ git log --oneline | awk 'NR==1 {print $1}'
>
(For long input files you may want an early exit
  ...| awk 'NR==1 { print $1 ; exit(0) }'
but that just as an aside.)
[...]

This raises another issue: it's often possible to replace a command in a
pipeline that filters output with an option to the command that does the
same thing.  There's no general rule for how to do this, since different
commands do things differently, but for the example above:

    git log --oneline -n 1 | awk '{print $1}'

or even:

    git log -n 1 --format=%h

I haven't memorized the "--format" option, so I don't generally us it in
ad-hoc one-liners, but I do use it in scripts.  Note both of the above
commands avoid generating the entire list of log entries, which could
save significant time on a large repo.

Using unnecessary commands in pipelines is Mostly Harmless, but IMHO
it's good to think about how to do things more efficiently.  See also
"Useless use of cat" (UUOC).

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

Date Sujet#  Auteur
18 Dec20:46 * a sed question48Salvador Mirzo
18 Dec21:12 +- Re: a sed question1John-Paul Stewart
19 Dec02:14 +* Re: a sed question16Ralf Damaschke
19 Dec13:05 i`* Re: a sed question15Salvador Mirzo
20 Dec01:55 i `* Re: a sed question14Ralf Damaschke
20 Dec13:44 i  `* Re: a sed question13Kenny McCormack
21 Dec01:17 i   `* Re: a sed question12Ralf Damaschke
21 Dec04:09 i    `* Re: a sed question11Kaz Kylheku
21 Dec04:36 i     +* sed... (Was: a sed question)8Kenny McCormack
21 Dec04:57 i     i`* Re: sed... (Was: a sed question)7Kaz Kylheku
21 Dec15:38 i     i +* Re: sed... (Was: a sed question)4Janis Papanagnou
21 Dec17:29 i     i i`* Re: sed... (Was: a sed question)3Janis Papanagnou
21 Dec23:23 i     i i `* Re: sed...2Keith Thompson
22 Dec00:33 i     i i  `- Re: sed...1Janis Papanagnou
21 Dec22:46 i     i `* Re: sed... (Was: a sed question)2Lars Poulsen
22 Dec22:22 i     i  `- Re: sed... (Was: a sed question)1Kaz Kylheku
21 Dec15:35 i     +- Re: a sed question1Janis Papanagnou
22 Dec01:43 i     `- Re: a sed question1Ralf Damaschke
20 Dec15:55 +* Re: a sed question18Janis Papanagnou
20 Dec16:11 i+* Checking for right # of args in a shell script (Was: a sed question)3Kenny McCormack
20 Dec16:49 ii`* Re: Checking for right # of args in a shell script (Was: a sed question)2Janis Papanagnou
20 Dec18:43 ii `- Re: Checking for right # of args in a shell script (Was: a sed question)1Kenny McCormack
21 Dec13:17 i+* Re: a sed question13Salvador Mirzo
21 Dec16:19 ii+* Re: a sed question7Janis Papanagnou
21 Dec22:41 iii`* Re: a sed question6Keith Thompson
22 Dec00:50 iii `* Re: a sed question5Janis Papanagnou
22 Dec01:26 iii  +* Re: a sed question2Keith Thompson
22 Dec01:41 iii  i`- Re: a sed question1Janis Papanagnou
22 Dec01:31 iii  `* Re: a sed question2Lawrence D'Oliveiro
22 Dec02:06 iii   `- Re: a sed question1Janis Papanagnou
21 Dec16:34 ii+* Re: a sed question4Andy Walker
21 Dec17:14 iii+- Re: a sed question1Janis Papanagnou
21 Dec19:21 iii`* Re: a sed question2Salvador Mirzo
21 Dec20:48 iii `- Re: a sed question1Janis Papanagnou
21 Dec19:20 ii`- Re: a sed question1Helmut Waitzmann
22 Dec19:23 i`- Re: a sed question1Janis Papanagnou
21 Dec15:13 `* Re: a sed question12Ed Morton
21 Dec22:09  `* Re: a sed question11Lawrence D'Oliveiro
22 Dec01:02   +* Re: a sed question8Janis Papanagnou
22 Dec01:28   i`* Re: a sed question7Lawrence D'Oliveiro
22 Dec01:36   i +* Re: a sed question5Keith Thompson
22 Dec02:52   i i`* Re: a sed question4Lawrence D'Oliveiro
22 Dec06:09   i i `* Re: a sed question3Keith Thompson
22 Dec06:56   i i  `* Re: a sed question2Lawrence D'Oliveiro
22 Dec07:55   i i   `- Re: a sed question1Keith Thompson
22 Dec02:22   i `- Re: a sed question1Janis Papanagnou
22 Dec02:09   +- Re: a sed question1Kenny McCormack
22 Dec21:03   `- Re: a sed question1Kaz Kylheku

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal