Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

263
Vistas
Cómo ordenar un archivo en el lugar

Cuando usamos el comando sort file , el archivo muestra su contenido de forma ordenada, ¿qué pasa si no quiero obtener ningún tipo de salida sino un archivo ordenado?

over 4 years ago · Santiago Trujillo
7 Respuestas
Responde la pregunta

0

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

 sort -o file file

Esto sobrescribe el file de entrada con la salida ordenada. El -o , 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 interruptor -o ( Luis me asegura que existen), puede lograr una edición "en el lugar" de la manera estándar:

 sort file > tmp && mv tmp file
over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar la redirección de archivos para redirigir la salida ordenada:

 sort input-file > output_file

O puede usar la opción de clasificación -o , --output=FILE para indicar el mismo archivo de entrada y salida:

 sort -o file file

Sin repetir el nombre del archivo (con la expansión bash brace )

 sort -o file{,}

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

over 4 years ago · Santiago Trujillo Denunciar

0

Para ordenar el archivo en su lugar, intente:

 echo "$(sort your_file)" > your_file

Como se explica en otras respuestas, no puede redirigir directamente la salida al archivo de entrada. Pero primero puede evaluar el comando de sort y luego redirigirlo al archivo original. De esta manera, puede implementar la ordenación en el lugar.

Del mismo modo, también puede aplicar este truco a otro comando como paste para implementar la adición por filas.

over 4 years ago · Santiago Trujillo Denunciar

0

Aquí hay un enfoque que (ab) usa vim :

 vim -c :sort -c :wq -E -s "${filename}"

La porción -c :sort -c :wq invoca comandos a vim después de que se abre el archivo. -E y -s son necesarios para que vim se ejecute en un modo "sin cabeza" que no atrae a la terminal.

Esto casi no tiene beneficios sobre el método sort -o "${filename}" "${filename}" , excepto que solo toma el argumento del nombre de archivo una vez.


Esto me resultó útil para implementar una directiva de formatter en una entrada nanorc para archivos .gitignore . Esto es lo que usé para eso:

 syntax "gitignore" "\.gitignore$" formatter vim -c :sort -c :wq -E -s
over 4 years ago · Santiago Trujillo Denunciar

0

¿Desea ordenar todos los archivos en una carpeta y subcarpeta anulándolos?

Utilizar esta:

 find . -type f -exec sort {} -o {} \;
over 4 years ago · Santiago Trujillo Denunciar

0

sort file | sponge file

Esto está en el siguiente paquete de Fedora:

 moreutils : Additional unix utilities Repo : fedora Matched from: Filename : /usr/bin/sponge
over 4 years ago · Santiago Trujillo Denunciar

0

No hay respuestas sobre algunos archivos, entonces:

 sort -u file1 file2 -o file1
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda