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