Esta es una consulta de seguimiento sobre¿Allpackages.txt.gz tiene dos tamaños de archivo diferentes?
$ wc -l allpackages.txt
57725 allpackages.txt
Miré el resultado y dice 57725 -6 los archivos de encabezado, que es el total general de 57719 paquetes, pero como se comparte en los comentarios sobrehttp://linux.koolsolutions.com/2008/12/19/counting-number-of-packages-under-debian-linux/#comment-10014El siguiente comando debería funcionar pero no funciona.
$ 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
¿Alguien puede ayudar de dos maneras?
a. ¿Decodificar lo que el propio comando intenta hacer? Sé que tail
se usa para dar las últimas 10 palabras impares y cut
es cuando intentas eliminar algunas secciones del archivo.
Si es necesario, compartiría allpackages.txt en algún lugar para que las personas puedan encontrar la mejor manera de conocer la cantidad única de paquetes que contiene.
https://www.dropbox.com/sh/9p03q138xx9nxvb/AAAukls-UnxRZwoCPwx4HwLAa?dl=0
Respuesta1
Mostraste el comando: tail -n +7 allpackages.txt | cut -d’ ‘ -f1 | cut -d’-‘ -f1 | uniq | wc -l
. Contiene comillas que no son ASCII, lo que ciertamente no es lo que se pretendía.
Pruebe esto en su lugar:
tail -n +7 allpackages.txt | cut -d' ' -f1 | cut -d- -f1 | uniq | wc -l
Esto es lo que hacen los miembros del oleoducto:
tail -n +7
imprime un archivo comenzando en la línea 7;cut -d' ' -f1
mantiene el primer campo, usando un solo espacio como separador;cut -d- -f1
mantiene el primer campo, utilizando un signo menos (-
) como separador;uniq
comprime tiradas de líneas idénticas en una sola línea;wc -l
imprime el recuento de líneas.
Por lo tanto, toda la canalización ignora las primeras seis líneas de su archivo y luego intenta contar los valores únicos en el campo seleccionado. (Esto supone que la entrada está ordenada de modo que los valores que se van a agrupar vengan en secuencia; si esto no es cierto, tal vez
sort -u
se podría usar una llamada a sort).