best counter
GNU/Linux. MuyLinux

Herramientas UNIX desconocidas: cut

25/11/2010| por | 17 comentarios

Uno de los desarrolladores implicados en Debian ha publicado un pequeño post en su blog en el que nos habla de una de esas utilidades que provienen del mundo UNIX y que pueden llegar muy bien a los usuarios.

Tijeras Herramientas UNIX desconocidas: cut

Se trata del comando cut, una pequeña herramienta que permite extraer ciertas partes de un texto y que ayuda a trabajar con cadenas de caracteres (strings) de forma más potente. Por ejemplo, para extraer del tercer al octavo caracter de una palabra:

$ echo Hurzlipuh | cut -c3-8
rzlipu

Como indica Alex Beckert en su blog, lo realmente útil de este comando está en escenarios en los que es necesario que “recortemos” la salida de programas en terminal que se pasan de las 80 columnas (la anchura tradicional de un terminal convencional). Así, haríamos:

$ dpkg -l | grep -i macro | cut -c-80
ii  docbook-to-man                                                     1:2.0.0-28
ii  latex-cjk-common                                                 4.8.2+git20090105-5
ii  m4                                                                                1.4.14-3
ii  mp4h                                                                           1.3.1-5
rc  swfdec-gnome                                                        2.28.0-1

Es posible recortar columnas basándose en caracteres (-c), bytes (-b), campos (-f) delimitados por tabuladores (o con un delimitador específico indicado con -d). Un truco curioso, sin duda.

Related posts:

  1. 3 herramientas para montar tus particiones de disco en Linux [Actualizado]
  2. Una terminal dentro de Nautilus
  3. Comandos singulares para aprovechar tu terminal
  4. 10 herramientas de backup para Linux
  5. ¿Cómo cerrar la terminal y no ‘matar’ los programas que habíamos abierto en ella?
Categorías: Open Source, Trucos, Ubuntu

Hay 17 comentarios

  1. 1
    Balua dice:

    Muy bueno el recordatorio.

    • 6
      Anónimo dice:

      Recordatorio sí, pero desconocido no. :S

      • 10
        CHuLoYo dice:

        Sí, le habría quedado mejor: “Herramientas olvidadas” o algo así

  2. 2

    Aunque ya lo cuentas ahí, yo creo que lo que más utilidad tiene es usar el -f, por ejemplo, para saber pids de procesos:

    ps aux|grep proceso|cut -d’ ‘ -f7…

    Ya se que existe killall (que hay que escribirlo exacto) o pkill que permite expresiones regulares, pero a veces pasan de mí, y esto no :D

    kill -9 `ps aux|grep proces|cut -d’ ‘ -f7`

    También es util tratándose de paquetes: dpkg -l | cut -d’ ‘ -f3 lista de todos tus paquetes.

    Un programa “similar” pero mucho más potente para estas cosas es AWK: dpkg -l | awk ‘{ print $2 }’ o ps aux | grep proceso | awk ‘{ print $2 }’

    • 3
      Picajoso dice:

      Álex, eso es lo que yo llamaría un comentario con sustancia :)

      Gracias por los apuntes!

  3. 4
    algui91 dice:

    Yo hice una vez un script para la gestion básica de usuarios en linux (Con zenity), Y cut, creo que es uno de los comandos que más use, ya que sin el, no se podrian seleccionar el nombre de los usuarios o grupos, al venir en una lista dentro de un archivo, /etc/passwd para usuarios y /etc/group para los grupos.
    Como dice Álex González, Awk es mas potente, me gustaria aprender a usarlo, pero aun no he encontrado el momento.
    Aqui os dejo el script por si a alguien le interesa

    http://pastebin.com/yCQWDS1H

    Saludos

  4. 5
    Andrés dice:

    Yo nunca he podido aprender awk, como que supera mi capacidad de entender un lenguaje. Pero combinando grep, cut y sed puedo hacer de todo, o por lo menos, todo lo que he necesitado

  5. 7
    Shotokan dice:

    ¡¿Desconocido?! ¡Si me lo enseñaron hasta en la carrera (y eso que poco Linux me enseñaron)! Se utiliza principalmente, como dice Álex González, para separar campos en un listado. Es muy útil a la hora de hacer scripts.

    Combinado con “alias” también puede ser muy útil. Por ejemplo, si al hacer “ls -l” quiero que salgan solo algunas de las columnas y no todas.

  6. 8
    fran dice:

    no entiendo nada………………………………….,

  7. 9
    Raist dice:

    Para quien no se haya leido nada seguro que es desconocidisima.

  8. 11
    AegLos dice:

    Para eso mejor usar awk, que es mucho mas potente que el cut.

    • 12
      Ramón dice:

      n00b

      • 13
        AegLos dice:

        noob dice…jajaja! como se nota que no tienes ni puta idea eh…

        • 15
          Ramón dice:

          Recurrir a awk ignorando algunas otras coreutils es de novatos.
          Primero hay que hacer el trabajo como hombes, antes de recurrir a Awk, a sed o a Perl =P

          No te preocupes, eventualmente lo entenderás ;)

          • 17
            Carlos dice:

            personaje!

      • 14
        algui91 dice:

        AegLos tiene Razón Ramón, Awk es mucho mas potente que cut, Pero para cosas simples, mejor usar cut (en mi opinion).
        Tambien existen gAwk y mAwk, Aunque esos si que nunca los Use, ni siquiera sé para que sirven ;), hay tantos comandos en linux…

  9. 16

    No se olvide la posibilidad de indicar delimitadores con el comando cut o el uso del comando awk.
    Os recomiendo visitar el enlace para profundizar en el conocimiento del comando cut y conocer otros posibles usos.
    Salu2

Escribe tu comentario