GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo ordenar un archivo en el lugar

Puedes usar el -o , --output=FILE opción de ordenar para indicar el mismo archivo de entrada y salida:

sort -o file file

Sin repetir el nombre del archivo (con expansión de llave bash)

sort -o file{,}

⚠️ Nota importante: un error común es intentar redirigir la salida al mismo archivo de entrada (por ejemplo, sort file > file ). Esto no funciona porque el shell está haciendo las redirecciones (no el sort(1) programa) y el archivo de entrada (como siendo la salida también) se borrará justo antes de dar el sort(1) programa la oportunidad de leerlo.


El sort El comando imprime el resultado de la operación de clasificación en la salida estándar de forma predeterminada. Para lograr una ordenación "in situ", puede hacer lo siguiente:

sort -o file file

Esto sobrescribe la entrada file con la salida ordenada. El -o El conmutador, utilizado para especificar una salida, está definido por POSIX, por lo que debería estar disponible en todas las versiones de sort :

-o Especifique el nombre de un archivo de salida que se utilizará en lugar de la salida estándar. Este archivo puede ser el mismo que uno de los archivos de entrada.

Si tiene la mala suerte de tener una versión de sort sin el -o interruptor (Luis me asegura que existen), puede lograr una edición "en el lugar" de la manera estándar:

sort file > tmp && mv tmp file

Linux
  1. Manera de modificar un archivo en el lugar?

  2. ¿Cómo ordenar la salida Du por tamaño?

  3. ¿Ordenar parte de un archivo?

  4. Cómo grep \n en el archivo

  5. ¿Cómo hacer que ls ordene por extensión de archivo y luego por nombre?

Cómo leer un archivo línea por línea en Bash

Cómo crear un archivo en Linux

Cómo crear un archivo Tar Gz

Cómo descomprimir (abrir) un archivo Gz

Cómo vincular un archivo en Linux

Cómo hacer eco en un archivo