Combinar cut con otras herramientas de procesamiento de texto
En este paso, aprenderá cómo combinar el comando cut
con otros comandos de procesamiento de texto de Linux para realizar tareas más complejas de extracción y manipulación de datos.
Crear un archivo de datos CSV
Primero, creemos un archivo CSV (Valores Separados por Comas) con el que trabajar:
cd ~/project
echo "Date,Product,Quantity,Price,Total" > data/sales.csv
echo "2023-01-15,Laptop,5,1200,6000" >> data/sales.csv
echo "2023-01-16,Mouse,20,25,500" >> data/sales.csv
echo "2023-01-17,Keyboard,15,50,750" >> data/sales.csv
echo "2023-01-18,Monitor,8,200,1600" >> data/sales.csv
echo "2023-01-19,Headphones,12,80,960" >> data/sales.csv
Veamos el contenido de este archivo:
cat data/sales.csv
Debería ver:
Date,Product,Quantity,Price,Total
2023-01-15,Laptop,5,1200,6000
2023-01-16,Mouse,20,25,500
2023-01-17,Keyboard,15,50,750
2023-01-18,Monitor,8,200,1600
2023-01-19,Headphones,12,80,960
Combinar cut con grep
Puede usar grep
para encontrar líneas que contengan patrones específicos y luego usar cut
para extraer campos específicos de esas líneas:
grep "Laptop" data/sales.csv | cut -d',' -f3-5
Este comando primero encuentra todas las líneas que contienen "Laptop" y luego extrae los campos 3 - 5 (Cantidad, Precio y Total). Debería ver:
5,1200,6000
Combinar cut con sort
Puede usar sort
para ordenar los datos en función de un campo específico:
cut -d',' -f2,4 data/sales.csv | sort -t',' -k2nr
Este comando extrae el Producto (campo 2) y el Precio (campo 4), luego los ordena en función del Precio en orden numérico inverso. La opción -t','
especifica el delimitador para sort
, -k2
indica que se ordene por el segundo campo, n
significa ordenación numérica y r
significa orden inverso.
Debería ver:
Product,Price
Laptop,1200
Monitor,200
Headphones,80
Keyboard,50
Mouse,25
Combinar cut con sed
El comando sed
es un editor de flujo que puede realizar transformaciones básicas de texto. Aquí hay un ejemplo de combinación de cut
con sed
:
cut -d',' -f1,2,5 data/sales.csv | sed 's/,/ - /g'
Esto extrae los campos Fecha, Producto y Total, luego reemplaza todas las comas con " - ". Debería ver:
Date - Product - Total
2023-01-15 - Laptop - 6000
2023-01-16 - Mouse - 500
2023-01-17 - Keyboard - 750
2023-01-18 - Monitor - 1600
2023-01-19 - Headphones - 960
Combinar cut con awk
El comando awk
es una poderosa herramienta de procesamiento de texto. Aquí está cómo combinarlo con cut
:
cut -d',' -f2-4 data/sales.csv | awk -F',' 'NR > 1 {print $1 " costs $" $3 " per unit"}'
Esto extrae los campos 2 - 4 (Producto, Cantidad y Precio), luego usa awk
para formatear un mensaje. La condición NR > 1
omite la fila de encabezado y la declaración de impresión formatea la salida.
Debería ver:
Laptop costs $1200 per unit
Mouse costs $25 per unit
Keyboard costs $50 per unit
Monitor costs $200 per unit
Headphones costs $80 per unit
Procesar múltiples archivos
También puede usar cut
con múltiples archivos. Creemos otro archivo:
echo "Category,Product,Stock" > data/inventory.csv
echo "Electronics,Laptop,15" >> data/inventory.csv
echo "Accessories,Mouse,50" >> data/inventory.csv
echo "Accessories,Keyboard,30" >> data/inventory.csv
echo "Electronics,Monitor,20" >> data/inventory.csv
echo "Accessories,Headphones,25" >> data/inventory.csv
Ahora, extraigamos el campo Producto de ambos archivos:
cut -d',' -f2 data/sales.csv data/inventory.csv
Debería ver:
Product
Laptop
Mouse
Keyboard
Monitor
Headphones
Product
Laptop
Mouse
Keyboard
Monitor
Headphones
El comando cut
procesa todos los archivos y muestra todos los resultados secuencialmente. Tenga en cuenta que se incluyen ambas filas de encabezado.
Al combinar cut
con otras herramientas de procesamiento de texto, puede realizar tareas sofisticadas de manipulación de datos de manera eficiente en Linux.