Tecnología

Inicio

Tutorial en UNIX Ordenar Comando

El comando sort UNIX se utiliza para ordenar los archivos de texto ASCII. Se puede utilizar para ordenar los archivos de cualquier tamaño. El comando se puede utilizar incluso para ordenar más de un archivo y colocar el resultado en un único archivo. Los datos pueden ser ordenados alfabéticamente o numéricamente en cualquier campo en el archivo.

Uso

El comando sort tiene la sintaxis "tipo [opciones] nombre de archivo (s)." Sin ninguna opción, el comando sort utiliza toda la línea como criterio de ordenación predeterminada, ordena el archivo en orden alfabético y en orden ascendente, e imprime el resultado en la pantalla. Las líneas dentro del archivo no necesitan ser del mismo tamaño. Los campos dentro del archivo están separados por un espacio de forma predeterminada.

Puede utilizar las opciones de comando para cambiar el comportamiento predeterminado del comando sort. Para enviar la salida a un archivo en lugar de la pantalla, utiliza la opción "-o". La sintaxis sería "ordenar -O entrada de salida."

Si usted tiene un archivo que contiene datos numéricos, se debe utilizar la opción "-n" para decirle al comando para ordenar numéricamente. La sintaxis sería "nombre de archivo clase -n". Por supuesto, se puede añadir la opción "-o" para emitir los resultados a un archivo de salida. La sintaxis sería entonces "de entrada de salida -o tipo -n".

Si prefiere ordenar el archivo en orden (za) en lugar del orden ascendente (AZ) descendente, se utiliza la opción "-r". La "r" significa en este caso inverso. La sintaxis sería "nombre de archivo sort -r".

Ordenar supone que los campos están separados por espacios en blanco, lo que significa que cada palabra en una línea se cuenta como un campo. Sin embargo, es posible que tenga un archivo de valores separados por comas (CSV), o los campos pueden separarse por otro personaje como los dos puntos. Si este es el caso, utilice la opción "-t" para designar el separador de campo. La sintaxis de un archivo CSV sería "una especie -t, nombre de archivo."

Ordenar asume que desea utilizar toda la línea como criterio de ordenación. Si sólo desea ordenar en un campo específico, debe agregar la opción "+ m", donde "m" es el número del campo menos uno. Por ejemplo, si usted tenía un archivo CSV con el primer nombre del campo, apellido y dirección, y que quería ordenar por el apellido, la sintaxis sería "una especie -t, +1 nombre de archivo." El "1" para ordenar dice en el segundo campo. La razón de la extraña numeración se debe al hecho de que los comandos Unix por lo general comienzan a contar desde "0", no "1." El comando sería entonces ordenar el apellido y utilizar el campo de dirección como una opción de orden secundario.

Si sólo queremos ordenar en el segundo campo del ejemplo anterior, usted tendría que decirle al comando sort para detener la clasificación en el tercer campo. Para que utilizaría la opción "-m", donde "m" es el número del campo menos uno. Para única clase en el último campo de nombre en el ejemplo anterior, se utilizaría la sintaxis "tipo -t, 1 -2 nombre de archivo."

Otras opciones más comunes incluyen los "-u" y opciones "-D". La opción "-u" le indica al comando para imprimir sólo los valores únicos después de la clasificación. Si no son múltiplos de una sola línea, se imprimirá sólo una instancia del valor. La opción "-d", dice para llevar a cabo una especie de diccionario del archivo, lo que significa que sólo espacios en blanco, dígitos y caracteres alfabéticos se utilizan en la comparación.

Ordenar también se puede utilizar para combinar y ordenar dos archivos en un único archivo de salida. Si más de un nombre de archivo se proporciona como un archivo de entrada, el comando combinar los dos archivos y ordenar los resultados. Cuando se utiliza con la opción "-o", el resultado será un único archivo que contiene los valores ordenados de ambos archivos. La sintaxis sería "ordenar -o salida ENTRADA 1 ENTRADA 2". Otras opciones para el comando tipo se pueden encontrar en la página principal especie (ver "Recursos adicionales" más adelante).