El uso de los comandos en Linux es una de las formas más prácticas para administrar muchas tareas ya sea a nivel de archivos, servicios o procesos, y lo mejor de esto es que disponemos de varios comandos cada uno con su función particular.
Uno de estos comandos que podemos usar con frecuencia es el comando cut (cortar) el cual está implementado en los sistemas operativos Unix, y el propósito de este comando es eliminar o recortar las secciones de cada línea de un archivo especificado.
El uso de este comando puede ser usado para cortar partes de una línea ya sea por posición de byte, caracter o campo según sea le necesidad del caso de modo que con el comando cut será posible extraer parte de un texto basándonos en algunas variables a usar.
Solvetic te explicará de forma detallada como puedes usar el comando cut y darle un uso adecuado en ambientes Linux, en este caso trabajamos en Ubuntu 19.04.
1Comando cut Linux
La sintaxis básica de uso de este comando es la siguiente:
cut OPCION... [ARCHIVO]...Dentro de las opciones disponibles para este comando encontramos las siguientes y tú decides cuál usar:
-b, --bytes=LIST
-c, --characters=LIST
-d, --delimiter=DELIM
-f, --fields=LIST
-n
--complement
-s, --only-delimited
--output-delimiter=STRING
--help
--version
2Cómo usar el comando cut en Linux
Para empezar podemos visualizar el contenido de un archivo de texto ubicado en el escritorio y con el cual veremos el trabajo del comando cut, este contenido puede ser visualizado usando el comando cat:
Cada lista en Linux está formada por un entero, un rango de enteros o diversos rangos de enteros los cuales están separados por comas, con cut se pueden usar las siguientes opciones de lectura.
- N el byte, carácter o campo Nth, contados desde 1.
- N- desde el Nth byte, carácter o campo, hasta el final de la línea.
- N-M del Nth al Mth byte, carácter o campo (inclusive).
- -M desde el primer byte al mth byte, carácter o campo
Si ejecutamos cut sin un parámetro veremos el siguiente resultado:
3Cómo usar el parámetro -b(byte) Linux
El primer uso que haremos de cut es con el parámetro -b (byte) el cual extrae los bytes que indiquemos, para ello la opción -b debe estar con la lista de números de bytes separados por comas.
Algo importante a tener en cuenta es que tanto las pestañas como los espacios en blanco son considerados como un caracter de 1 byte para tenerlo presente a la hora de definir el rango o el límite.
Por ejemplo, vamos a ejecutar lo siguiente:
cut -b 1,2,3 Solvetic
Existe una forma especial que nos permite seleccionar los bytes desde el principio hasta el final de la línea, para ello podemos ejecutar lo siguiente:
cut -b 1- Solvetic
Aquí el valor 1- indica la selección desde el primer byte hasta el final del byte de una línea en el archivo, ahora, podemos ejecutar lo siguiente:
cut -b -4 Solvetic
En este caso hemos extraído los primeros 4 bytes de la línea.
4Cómo usar el parámetro -c (column) Linux
Otra de los parámetros de uso es la selección de columna ©, esta nos permite seleccionar un conjunto de caracteres según sea la necesidad, su sintaxis de uso es la siguiente:
cut -c [(k)-(n)/(k),(n)/(n)] archivoAquí los valores pueden ser una lista de números separados por comas o bien un rango de números separados por un guion.
En la sintaxis dada la letra k indica la posición inicial del caracter y la letra n hace referencia a la posición final del caracter en cada línea dada.
Vamos a ejecutar lo siguiente y veremos que sucede:
cut -c 2,4,6 Solvetic
En este caso vemos que se extraen los caracteres en las posiciones que hemos indicado, pero es posible desplegar un rango de caracteres de la siguiente forma:
cut -c 2-5 Solvetic
Al igual que el parámetro anterior podemos desplegar todos los bytes de la línea usando la siguiente opción:
cut -c 1- SolveticO bien podemos extraer un rango definido de la siguiente forma:
cut -c -3 Solvetic
5Cómo usar el parámetro -f (field) Linux
Cuando usamos el parámetro -c es usado para líneas con una extensión ya definida, pero como en los sistemas Linux existen archivos sin una limitación de longitud.
Debemos cortar por campos los datos en vez de usar las columnas, allí entra en juego el parámetro -f el cual usa la siguiente sintaxis:
cut -d "delimitador" -f (# de campo) archivoPodemos ejecutar lo siguiente:
cut -f 1 Solvetic
Allí podemos añadir el parámetro -d, el cual toma el espacio como un separador de campo o delimitador:
cut -d " " -f 1 Solvetic
Ahora podemos desplegar más campos si es el caso usando el rango con un guion:
cut -d " " -f 1-3 Solvetic
6Cómo usar el parámetro –complement Linux
Este valor complementa la salida de los resultados de cut y puede usarse con -f o con -c sin problemas, por ejemplo ejecutemos:
cut --complement -d " " -f 1 Solvetic
O bien podemos ejecutar:
cut --complement -c 4 SolveticEsto cortará el cuarto caracter en las líneas del archivo seleccionado:
7Cómo usar el parámetro –output-delimiter Linux
Cumple la misma función que el delimitador de entrada usado con la opción de -d, este delimitador puede ser editado usando la sintaxis –output-delimiter=”delimiter”.
cut -d " " -f 1,2 Solvetic --output-delimiter='%'
Allí los espacios se complementan con el signo %.
8Cómo delimitar valores de otros directorios Linux
El comando cut nos permite delimitar parámetros en otros directorios o archivos de Linux, un ejemplo de esto es el directorio /etc/passwd en el cual se aloja la información de cada usuario en el sistema, un usuario por línea, y allí cada uno de estos campos está delimitado por dos puntos (":"), la sintaxis de un usuario es la siguiente:
root:x:0:0:root:/root:/bin/bash
- Nombre de usuario
- Contraseña (oculta con una x si ha sido encriptada)
- User ID number (UID)
- Group ID number (GID)
- Comentarios
- Directorio Home
- Shell
Dado que el nombre de usuario es el primer campo en la línea, si deseamos visualizar solo este campo ejecutaremos:
cut -f 1 -d ':' /etc/passwd
Ahora, para ver campos adicionales, como el GUI podemos añadir la respectiva columna:
cut -f 1,4 -d ':' /etc/passwd
En ambos casos la salida esta limitada por los dos puntos ( : ), pero es posible asignar un delimitador diferente tanto para la entrada y la salida de los resultados, por ejemplo, si la salida está delimitada por un espacio debemos ejecutar lo siguiente:
cut -f 1,4 -d ':' --output-delimiter=' ' /etc/passwd
Con el comando cut en Linux es posible llevar a cabo diversas actividades que nos permiten visualizar de una manera mucho más práctica el contenido de un archivo.