So finden Sie die Anzahl eindeutiger „Anwendungen“ in Debian Jessie

So finden Sie die Anzahl eindeutiger „Anwendungen“ in Debian Jessie

Dies ist eine Folgeanfrage zuallpackages.txt.gz hat zwei unterschiedliche Dateigrößen?

$ wc -l allpackages.txt 
57725 allpackages.txt

Ich habe mir die Ausgabe angesehen und sie lautet 57725 -6 die Header-Dateien, was die Gesamtsumme von 57719 Paketen ergibt, aber wie in den Kommentaren aufhttp://linux.koolsolutions.com/2008/12/19/counting-number-of-packages-under-debian-linux/#comment-10014Der folgende Befehl sollte funktionieren, tut es aber nicht.

$ tail -n +7 allpackages.txt | cut -d’ ‘ -f1 | cut -d’-‘ -f1 | uniq | wc -l
cut: cut: the delimiter must be a single character
Try 'cut --help' for more information.
the delimiter must be a single character
Try 'cut --help' for more information.
0

Kann jemand auf verschiedene Weise helfen: -

a. Dekodieren, was der Befehl selbst zu tun versucht? Ich weiß, dass dies tailverwendet wird, um die letzten 10 ungeraden Wörter anzugeben und cutwenn Sie versuchen, einige Abschnitte der Datei zu entfernen.

Bei Bedarf würde ich die Datei allpackages.txt irgendwo teilen, damit die Leute herausfinden können, wie sie am besten die eindeutige Anzahl der darin enthaltenen Pakete ermitteln können.

https://www.dropbox.com/sh/9p03q138xx9nxvb/AAAukls-UnxRZwoCPwx4HwLAa?dl=0

Antwort1

Sie haben den Befehl angezeigt: tail -n +7 allpackages.txt | cut -d’ ‘ -f1 | cut -d’-‘ -f1 | uniq | wc -l. Dieser enthält nicht-ASCII-Anführungszeichen, was sicherlich nicht beabsichtigt war.

Versuchen Sie stattdessen Folgendes:

tail -n +7 allpackages.txt | cut -d' ' -f1 | cut -d- -f1 | uniq | wc -l

Folgendes tun die Mitglieder der Pipeline:

  • tail -n +7druckt eine Datei ab Zeile 7;

  • cut -d' ' -f1behält das erste Feld bei und verwendet ein einzelnes Leerzeichen als Trennzeichen;

  • cut -d- -f1behält das erste Feld bei und verwendet ein Minuszeichen ( -) als Trennzeichen;

  • uniqkomprimiert Folgen identischer Zeilen zu einer einzigen Zeile;

  • wc -ldruckt die Zeilenanzahl.

Daher ignoriert die gesamte Pipeline die ersten sechs Zeilen Ihrer Datei und versucht dann, die eindeutigen Werte im ausgewählten Feld zu zählen. (Dies setzt voraus, dass die Eingabe so sortiert ist, dass die zusammenzufassenden Werte in der richtigen Reihenfolge vorliegen. Wenn dies nicht der Fall ist, sort -ukann möglicherweise ein Aufruf von sort verwendet werden.)

verwandte Informationen