10 ejemplos prácticos de comandos de Linux Cut para seleccionar columnas de archivos
El comando de Linux Cut se utiliza para el procesamiento de texto. Puede usar este comando para extraer parte del texto de un archivo seleccionando columnas.
Este tutorial proporciona algunos ejemplos prácticos del comando de corte que puede usar en sus actividades diarias en la línea de comandos.
Para la mayor parte del ejemplo, usaremos el siguiente archivo de prueba.
$ cat test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Seleccionar columna de caracteres
Para extraer solo una columna deseada de un archivo, use la opción -c. El siguiente ejemplo muestra el segundo carácter de cada línea de un archivo test.txt
$ cut -c2 test.txtaps
Como se vio arriba, los caracteres a, p, s son el segundo carácter de cada línea del archivo test.txt.
Seleccionar columna de caracteres usando Rango
El rango de caracteres también se puede extraer de un archivo especificando la posición inicial y final delimitada con -. El siguiente ejemplo extrae los primeros 3 caracteres de cada línea de un archivo llamado test.txt
$ cut -c1-3 test.txtcatcpls
Seleccione la columna de caracteres usando la posición inicial o final
Se puede pasar la posición inicial o final al comando de corte con la opción -c.
Lo siguiente especifica solo la posición inicial antes del ‘-‘. Este ejemplo extrae desde el tercer carácter hasta el final de cada línea del archivo test.txt.
$ cut -c3- test.txtt command for file oriented operations. command for copy files or directories. command to list out files and directories with its attributes.
Lo siguiente especifica solo la posición final después de «-«. Este ejemplo extrae 8 caracteres del principio de cada línea del archivo test.txt.
$ cut -c-8 test.txtcat commcp commals comma
La línea completa se imprimirá si no especifica un número antes o después de ‘-‘ como se muestra a continuación.
$ cut -c- test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Seleccionar un campo específico de un archivo
En lugar de seleccionar x número de caracteres, si desea extraer un campo completo, puede combinar la opción -f y -d. La opción -f especifica qué campo desea extraer, y la opción -d especifica cuál es el delimitador de campo que se usa en el archivo de entrada.
El siguiente ejemplo muestra solo el primer campo de cada línea de / etc / passwd usando el delimitador de campo: (dos puntos). En este caso, el primer campo es el nombre de usuario. El archivo
$ cut -d":" -f1 /etc/passwdrootdaemonbinsyssyncgamesbala
Seleccionar varios campos de un archivo
También puede extraer más de un campo de un archivo o stdout. El siguiente ejemplo muestra el nombre de usuario y el directorio de inicio de los usuarios que tienen el shell de inicio de sesión como «/ bin / bash».
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1,6root:/rootbala:/home/bala
Para mostrar el rango de campos, especifique el campo de inicio y el campo final como se muestra a continuación. En este ejemplo, seleccionamos los campos 1 a 4, 6 y 7
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1-4,6,7root:x:0:0:/root:/bin/bashbala:x:1000:1000:/home/bala:/bin/bash
Seleccionar campos solo cuando una línea contenga el delimitador
En nuestro ejemplo de / etc / passwd, si pasa un delimitador diferente a: (dos puntos), cut solo mostrará la línea completa.
En el siguiente ejemplo, nosotros ‘ he especificado el delimitador como | (tubería), y el comando cut simplemente muestra la línea completa, incluso cuando no encuentra ninguna línea que tenga | (tubería) como delimitador.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -f1root:x:0:0:root:/root:/bin/bashbala:x:1000:1000:bala,,,:/home/bala:/bin/bash
Pero es posible filtrar y mostrar solo las líneas que contienen el delimitador especificado usando la opción -s.
El siguiente ejemplo no muestra ningún resultado, ya que el comando cut no lo hizo No encuentro ninguna línea que tenga | (tubería) como delimitador en el archivo / etc / passwd.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -s -f1
Seleccionar todos los campos excepto los campos especificados
Para complementar la lista de campos de selección, utilice la opción –complemento.
Se muestra el siguiente ejemplo todos los campos del archivo / etc / passwd excepto el campo 7
$ grep "/bin/bash" /etc/passwd | cut -d":" --complement -s -f7root:x:0:0:root:/rootbala:x:1000:1000:bala,,,:/home/bala
Cambiar el delimitador de salida para visualización
Por defecto, el delimitador de salida es el mismo como delimitador de entrada que especificamos en la opción cut -d.
Para cambiar el delimitador de salida utilice la opción –output-delimiter como se muestra a continuación. En este ejemplo, el delimitador de entrada es: (dos puntos), pero el delimitador de salida es # (hash).
$ grep "/bin/bash" /etc/passwd | cut -d":" -s -f1,6,7 --output-delimiter="#"root#/root#/bin/bashbala#/home/bala#/bin/bash
Cambiar delimitador de salida a línea nueva
En este ejemplo, todos y cada uno de los campos de la salida del comando de corte se muestran en una línea separada. Todavía usamos –output-delimiter, pero el valor es $ ‘\ n’, lo que indica que debemos agregar una nueva línea como delimitador de salida.
$ grep bala /etc/passwd | cut -d":" -f1,6,7 --output-delimiter=$"\n"bala/home/bala/bin/bash
Combine Cortar con otra salida de comando de Unix
El poder del comando de corte puede realizarse cuando lo combina con la salida estándar de algún otro comando de Unix.
Una vez que domine el uso básico del comando de corte que hemos explicado anteriormente, puede usar sabiamente el comando cut para resolver muchos de sus requisitos de manipulación de texto.
El siguiente ejemplo indica cómo puede extraer solo información útil de la salida del comando ps. También mostramos cómo filtramos la salida del comando ps usando grep y sed antes de que se diera la salida final al comando cut.Aquí, hemos utilizado la opción de corte -d y -f que hemos explicado en los ejemplos anteriores.
Si te ha gustado este artículo, es posible que también te guste ..
|
|