tutorial script lenguaje example espaƱol linux bash command-line shell

linux - script - Clasificando en bash



bash scripting (2)

Mía:

cut -f <column_number> <filename> | sort | uniq -c | awk ''{ print $2" "$1}'' | sort

Esto alterará el orden de las columnas (awk) y luego solo ordenará la salida.

Espero que esto te ayudará

He intentado obtener los valores únicos en cada columna de un archivo delimitado por tabulaciones en bash. Entonces, utilicé el siguiente comando.

cut -f <column_number> <filename> | sort | uniq -c

Funciona bien y puedo obtener los valores únicos en una columna y su cuenta como

105 Linux 55 MacOS 500 Windows

Lo que quiero hacer es ordenar los nombres de los valores de columna (que en este ejemplo son nombres de sistema operativo). Quiero ordenarlos por conteo y posiblemente tener el recuento en la segunda columna en este formato de salida. Entonces tendrá que verse así:

Windows 500 MacOS 105 Linux 55

¿Cómo hago esto?


Utilizar:

cut -f <col_num> <filename> | sort | uniq -c | sort -r -k1 -n | awk ''{print $2" "$1}''

La sort -r -k1 -n ordena en orden inverso, utilizando el primer campo como valor numérico. El awk simplemente invierte el orden de las columnas. Puede probar los comandos agregados de la tubería así (con un formato más agradable):

pax> echo ''105 Linux 55 MacOS 500 Windows'' | sort -r -k1 -n | awk ''{printf "%-10s %5d/n",$2,$1}'' Windows 500 Linux 105 MacOS 55