Tengo una lista con población, año y condado y necesito cortar la lista y luego encontrar la cantidad de condados únicos.
La lista comienza así:
#Population, Year, County 3900, 1969, Beaver 3798, 1970, Beaver 3830, 1971, Beaver 3864, 1972, Beaver 3993, 1973, Beaver 3976, 1974, Beaver 4064, 1975, BeaverHay mucho más en esta lista, y muchos más condados. Tengo que cortar la columna del condado, ordenarla y luego mostrar el número de condados uniq. Probé este comando:
cut -c3- list.txt | sort -k3 | uniq -cPero esto no corta la tercera lista, ni la ordena alfabéticamente. ¿Qué estoy haciendo mal?
Puede agregar un delimitador, que es una coma en su caso:
cut -f 3 -d, list.txt | sort | uniq luego, -c especifica la posición del carácter , en lugar del campo, que se especifica con -f .
Para eliminar los espacios al frente, puede canalizar todo esto, por ejemplo, awk '{print $1}' , es decir
cut -f 3 -d, list.txt | awk '{print $1}' | sort | uniq[editar]
Aaaay. Si intenta cut el tercer campo, solo le queda un campo después de la canalización, por lo que la clasificación en el tercer campo no funcionará, razón por la cual lo omití en mi ejemplo. Obtienes 1 campo, solo lo ordenas y aplicas uniq .
Puede usar awk para extraer el tercer campo (delimitado por espacios) y luego hacer su clasificación/uniq.
awk '{print $3}' list.txt |sort |uniq -c