Вы показали команду : 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
, можно использовать).