Ist ja eine schöne Zahl…

…aber wozu braucht man so viele greps?

$ compgen -c | grep grep | wc -l
69
$ _

Hmm, ob es in der Ausgabe von compgen wohl Dopplungen gibt?

$ compgen -c | nl | sort -k2 | grep grep | sed 10q
  1332	bzegrep
  5085	bzegrep
  3010	bzfgrep
  6763	bzfgrep
  3817	bzgrep
  7570	bzgrep
  3054	degrep
  6807	degrep
  1761	dfgrep
  5514	dfgrep
$ _

Und, wie viele greps habe ich wirklich?

$ compgen -c | grep grep | sort -u | wc -l
33
$ _

Schon etwas übersichtlicher.

Viele dieser greps sind dann kurze Skripten, die grep mit zusätzlichen Optionen aufrufen (man erkennt es an der Dateigröße), einige sind symbolische Links, einige sind Hardlinks (man erkennt es am @ beim ls -F). Hier eine Tabelle ohne Dopplungen:

$ for i in `compgen -c | grep grep`; do echo -ne "$i: "; ls -ishF `which $i`; done | column -t | sort -unk2 | nl
     1	grep-dctrl:      20709639  52K   /usr/bin/grep-dctrl*
     2	lzegrep:         20710041  0     /usr/bin/lzegrep@
     3	lzfgrep:         20710042  0     /usr/bin/lzfgrep@
     4	lzgrep:          20710043  0     /usr/bin/lzgrep@
     5	egrep:           20710253  4,0K  /usr/bin/egrep*
     6	fgrep:           20710257  4,0K  /usr/bin/fgrep*
     7	grep:            20710280  184K  /usr/bin/grep*
     8	rgrep:           20710407  4,0K  /usr/bin/rgrep*
     9	zipgrep:         20710858  4,0K  /usr/bin/zipgrep*
    10	grep-aptavail:   20711672  0     /usr/bin/grep-aptavail@
    11	msggrep:         20714439  120K  /usr/bin/msggrep*
    12	bzgrep:          20715010  4,0K  /usr/bin/bzgrep*
    13	xzgrep:          20715392  12K   /usr/bin/xzgrep*
    14	ptargrep:        20715432  8,0K  /usr/bin/ptargrep*
    15	zstdgrep:        20716764  4,0K  /usr/bin/zstdgrep*
    16	grep-available:  20717025  0     /usr/bin/grep-available@
    17	grep-debtags:    20717127  0     /usr/bin/grep-debtags@
    18	grep-status:     20717191  0     /usr/bin/grep-status@
    19	pgrep:           20717295  36K   /usr/bin/pgrep*
    20	dgrep:           20717352  4,0K  /usr/bin/dgrep*
    21	degrep:          20717640  0     /usr/bin/degrep@
    22	bzegrep:         20719866  0     /usr/bin/bzegrep@
    23	bzfgrep:         20719870  0     /usr/bin/bzfgrep@
    24	dfgrep:          20720182  0     /usr/bin/dfgrep@
    25	zegrep:          20720810  4,0K  /usr/bin/zegrep*
    26	zfgrep:          20720874  4,0K  /usr/bin/zfgrep*
    27	zgrep:           20720920  8,0K  /usr/bin/zgrep*
    28	dzegrep:         20721249  0     /usr/bin/dzegrep@
    29	dzfgrep:         20721253  0     /usr/bin/dzfgrep@
    30	dzgrep:          20722085  0     /usr/bin/dzgrep@
    31	grepdiff:        20724261  0     /usr/bin/grepdiff@
    32	xzegrep:         20743860  0     /usr/bin/xzegrep@
    33	xzfgrep:         20743862  0     /usr/bin/xzfgrep@
$ _

Da sage mir niemand, dass unixoide Betrübssysteme frei von seltsamen Strokeleien seien, die man vermutlich am besten mit einem bis in die Siebziger Jahre zurückreichenden Geschichtsbuch erklären kann!

Dieser Beitrag wurde unter Technisches abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

2 Antworten zu Ist ja eine schöne Zahl…

  1. Wolf sagt:

    Ich finde das nicht so problematisch. Die Funktionen von »egrep« und »fgrep« sind längst ins »grep« integriert, und alle anderen sind nur eine Verkettung eines Entkomprimierers mit dem »grep«. Das alles richtet keinen Schaden an.

    Schlimmer finde ich Altlasten in der Clib, all die Funktionen mit möglichem »undefined behaviour«. Wie die defekten Stringfunktionen. Oder ein qsort, das beliebigen Bufferoverflow erzeugen darf, wenn die Vergleichsfunktion keine totale Quasiordnung definiert.

    Und das alles ins C++ übernommen, statt bei der Gelegenheit mal mit dem SStahlbesen durchzufegen. :-/
    Und den Dreck dann über

    • Wolf sagt:

      (Sorry, der Stahlbesen hat ein S zu viel und die letzte Zeile muss weg. Die Eingabebox war bei mir rechts abgeschnitten und hatte das Scrollen verweigert.)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert