Con la terminal: Ordenar alfabéticamente el contenido (líneas) de un archivo

En mis ratos libres me pongo a aleatoriamente, revisar comandos del sistema… es por eso que muchas veces encuentro interesantes tips 🙂

Este es uno de ellos, precisamente como indica el título, les mostraré el cómo teniendo un archivo con muchas líneas de texto dentro, ordenar alfabéticamente las líneas de ese archivo.

Por ejemplo, tenemos un archivo (llamado distros) que contiene lo siguiente:

linux
debian
ubuntu
archlinux
sabayon
gentoo
solusos

Y deseamos ordenar alfabéticamente estas distros.

Para ello en una terminal ponemos lo siguiente:

cat distros | sort > distros-ordenadas

Y listo, les muestro el screenshot de yo ejecutando este comando, y luego haciendo un cat (mostrando contenido) del nuevo archivo distros-ordenadas:

…. ¿a que es extremadamente fácil? 😀

El comando sort tiene muchas opciones, en la terminal si hacen man sort les mostrará todas las opciones 😉

En fin, un pequeño tip que nos podría resolver varios problemas en determinado momento jajajaja, espero les haya gustado.

Saludos


14 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Cris Nepita dijo

    Esto sí que es muy útil, gracias por compartir el dato~

    1.    KZKG^Gaara dijo

      Gracias a tí por comentar 😉

  2.   Agustín dijo

    Buen tip 😉

    1.    KZKG^Gaara dijo

      Gracias 🙂

  3.   Pipe dijo

    De donde sacas los tips?

    1.    KZKG^Gaara dijo

      Simplemente como dije en el inicio del post, en mis ratos libres me pongo a revisar comandos del sistema 🙂
      Este lo encontré porque buscaba opciones o alternativas al comando locate, intenté buscar comandos como «search» o algo así, pero no encontré ninguno, por lo que listé todos los comandos con s y luego de un rato me llamó la atención sort 🙂

      Gracias por el comanterio, bienvenido al blog 😀

      1.    Will dijo

        Alternativas al «locate», tienes el «whereis» y «find»

        1.    KZKG^Gaara dijo

          Síp, find lo conocía … pero el whereis nop, jeje gracias 😀

  4.   Will dijo

    Hago soporte a servidores Unix AIX y Sun (y de vez en cuando algún Red Hat o SuSe) integramente desde la terminal y la verdad es que los comandos sort, junto al cut, grep, awk, etc. hacen maravillas ^___^

  5.   Darry Castro dijo

    Excelente , lo he utilizado para un formato de este modelo

    100:usuario1
    287:usuario2
    150:usuario3

    cat orden.txt |sort -n > orden1.txt
    100:usuario1
    150:usuario3
    287:usuario2

    Gracias…

  6.   Ernesto dijo

    Gracias, lo pude aplicar de forma correcta.

  7.   Eugenia dijo

    Cómo hago para que lo escriba en el mismo archivo, es decir sin tener que asignarlo a un nuevo archivo?? Gracias!

    1.    maesfahe dijo

      Si no tengo mal entendido, para que se modifique en el mismo archivo es como redireccionar la salida al archivo con igual nombre. PERO CUIDADO! Si te mandaste una macana y querés volver a atrás, no se puede (se reescribe el contenido).

      En el ejemplo que nos dejaron sería:
      cat distros | sort > distros

  8.   maesfahe dijo

    No sé si el autor de este post verá el comentario, pero me surgió una duda con el comando «sort»…
    En un archivo puse la lista de directorios que contenían cierto archivo. Esos directorios tienen números en su nombre, así uso números como 100, 10, 1, .1 y .01
    Cuando los ordena hace todo CASI perfecto:
    1) No ordena del /.01, /.1, /1, /10 y /100 (ordena así: …/.01, …/100, …/10, pero con coherencia interna alfabética de sus respectivas subcarpetas)
    2) Alterna uno y uno entre …/.1 y …/1

    ¿Se les ocurre cómo puedo hacer que quede perfecto el orden o es una limitación del comando sort?

    Desde ya, muchas gracias 🙂