Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

258
Views
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 answers
Answer question

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

0

No hay respuestas sobre algunos archivos, entonces:

 sort -u file1 file2 -o file1
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!