Как найти количество уникальных «приложений» в Debian jessie

Как найти количество уникальных «приложений» в Debian jessie

Это дополнительный запрос наallpackages.txt.gz имеет два разных размера файла?

$ wc -l allpackages.txt 
57725 allpackages.txt

Я посмотрел на вывод, и там написано 57725 -6 заголовочных файлов, что в общей сложности составляет 57719 пакетов, но, как было сказано в комментарияхhttp://linux.koolsolutions.com/2008/12/19/counting-number-of-packages-under-debian-linux/#comment-10014Следующая команда должна работать, но не работает.

$ 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

Может ли кто-нибудь помочь несколькими способами:

а. Расшифровка того, что пытается сделать сама команда? Я знаю, что она tailиспользуется для получения последних 10 нечетных слов и cutиспользуется, когда вы пытаетесь удалить некоторые разделы файла.

При необходимости я бы выложил allpackages.txt куда-нибудь, чтобы люди могли найти лучший способ узнать уникальное количество пакетов в нем.

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

решение1

Вы показали команду: tail -n +7 allpackages.txt | cut -d’ ‘ -f1 | cut -d’-‘ -f1 | uniq | wc -lОна содержит кавычки, не входящие в ASCII, что, конечно, не то, что предполагалось.

Попробуйте вместо этого следующее:

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

Вот чем занимаются участники трубопровода:

  • tail -n +7печатает файл, начиная со строки 7;

  • cut -d' ' -f1сохраняет первое поле, используя один пробел в качестве разделителя;

  • cut -d- -f1сохраняет первое поле, используя знак минус ( -) в качестве разделителя;

  • uniqсжимает серии одинаковых строк в одну строку;

  • wc -lпечатает количество строк.

Таким образом, весь конвейер игнорирует первые шесть строк вашего файла, а затем пытается подсчитать уникальные значения в выбранном поле. (Это предполагает, что входные данные отсортированы таким образом, что объединяемые значения идут последовательно; если это не так, возможно sort -u, можно использовать вызов sort).

Связанный контент