
En este artículo, aprenderá a utilizar Linux. column Los comandos dan formato al texto en tablas, procesan archivos CSV y producen resultados limpios y estructurados, además de proporcionar más de 15 ejemplos reales de formato de datos.
trabajar con CSV Los archivos o datos no estructurados a menudo requieren convertir resultados desordenados a un formato tabular legible.
este column Command es una utilidad simple pero poderosa que convierte datos sin procesar en columnas y tablas con el formato adecuado, lo que facilita la validación y el análisis de datos.
este column El comando es parte de util-linux Empaquete y formatee la entrada en columnas de acuerdo con la estructura del archivo fuente.
Ya sea que esté limpiando datos para exportarlos, formateando archivos de configuración o preparando datos para importarlos a una base de datos, las columnas pueden brindarle la flexibilidad de formato que necesita.
Diferencias distributivas importantes
este column Los comandos se comportan de manera diferente entre distribuciones; por ejemplo, los sistemas basados en Debian usan tradicionalmente bsdmainutils versión, mientras que los sistemas basados en RHEL utilizan util-linux La versión se actualiza para proporcionar más funciones.
Comprueba qué versión estás utilizando:
dpkg -S $(which column) # Debian/Ubuntu bsdextrautils: /usr/bin/column
Verifica tu column versión y util-linux embalar:
column --version # RHEL-based systems only rpm -qa | grep -i util-linux # RHEL, CentOS, Fedora, Amazon Linux dpkg -l | grep -i util-linux # Debian/Ubuntu
Salida de muestra en sistemas basados en Debian.
ii util-linux 2.39.3-9ubuntu6.4
Antes de profundizar en los ejemplos, eche un vistazo a las opciones disponibles:
man column
Formatos de tabla básicos en Linux
este -t flag Cree una tabla a partir de su archivo de entrada, p.e. /etc/passwd Por ejemplo:
column -t /etc/passwd
Este resultado parece confuso porque la columna trata los espacios como el delimitador predeterminado. Para resolver este problema, debe especificar un delimitador personalizado.
Utilice separadores personalizados
este -s bandera especifica un delimitador personalizado /etc/passwdel delimitador es colon:
column -s ":" -t /etc/passwd

La tabla ahora tiene el formato correcto y cada campo está separado correctamente.
existir ubuntu/Durbaneste bsdmainutils La versión trata múltiples delimitadores adyacentes como un solo delimitador (comportamiento codicioso), así que use -n Marcar para evitar esto:
column -t -s ":" -n /etc/passwd # Debian/Ubuntu only
Formatear CSV y archivos delimitados
Para archivos delimitados por comas:
column -t -s "," data.csv
Para archivos delimitados por tabulaciones:
column -t -s $'\t' data.tsv
Para archivos delimitados por barras verticales:
column -t -s "|" data.txt
Manejo de líneas en blanco en Linux
De forma predeterminada, las columnas ignoran las líneas vacías en la entrada; considere el siguiente archivo CSV que contiene líneas vacías:
column -t -s ";" dummy.txt

existir Durban/ubuntupara conservar líneas vacías, utilice -e bandera:
column -e -t -s "," dummy.txt # Debian/Ubuntu only
Delimitador de salida personalizado en Linux
El delimitador de salida predeterminado son dos espacios, así que use -o Banderas (solo sistemas basados en RHEL):
column -t -s "," -o " | " dummy.txt # RHEL-based only
Esto crea un formato de salida delimitado por barras verticales, que resulta útil a la hora de preparar datos para su posterior procesamiento.
Puedes usar cualquier cadena como delimitador:
column -t -s ":" -o " → " /etc/passwd | head -5 # Unicode arrow separator column -t -s "," -o "||" data.csv # Double pipe separator
Convertir filas en columnas en Linux
este -x flag Convierte filas en columnas, llenándolas horizontalmente antes de pasar a la siguiente fila:
column -x fillcols.txt

Esto es particularmente útil cuando se muestra una lista de elementos de forma compacta:
ls /usr/bin | column -x
Una columna de ejecución sin bandera tiene por defecto -x Comportamiento.
Usar salida de comando
La columna es buena para formatear dinámicamente la salida del comando.
Formatear salida df.
df -h | column -t
Formatear salida ps.
ps aux | column -t
Crear tablas rápidas a partir de datos.
echo -e "Name,Age,City\nJohn,30,NYC\nJane,25,LA" | column -t -s ","
producción:
Name Age City John 30 NYC Jane 25 LA
Formato clave-valor similar a JSON
Cuando se utilizan pares clave-valor:
column -t -s "=" config.ini
Para variables de entorno en formato legible por humanos:
env | column -t -s "="
Especificar el ancho de la columna
Usar ancho de salida de control COLUMNS Variables de entorno:
COLUMNS=80 column -t -s ":" /etc/passwd | head -5
El comando de columna se adapta automáticamente al ancho de su terminal:
echo $COLUMNS # Check current terminal width
Cuando cambias el tamaño del terminal, column Ajuste su salida en consecuencia. Compare estos ejemplos con diferentes anchos de terminales:
column -t -s ":" /etc/passwd | head -5

Formato de tabla avanzado (util-linux 2.23+)
versión moderna column Proporciona opciones adicionales de formato de tabla:
Especifique qué línea es el encabezado:
column -t -s "," -N "Name,Age,City" data.csv
Alinear columnas a la derecha
column -t -s "," -R 2,3 data.csv # Right-align columns 2 and 3
Truncar columna
column -t -s ":" -T 1,6 /etc/passwd # Truncate columns 1 and 6
Combinado con otros comandos
La columna funciona muy bien en tuberías:
# Format awk output
awk -F: '{print $1,$3,$6}' /etc/passwd | column -t
# Format cut output
cut -d: -f1,3,6 /etc/passwd | column -t -s ":"
# Format grep results
grep -v "^#" /etc/services | column -t
Genere un informe formateado a partir de los datos:
(echo "USER,CPU%,MEM%,COMMAND"; ps aux | awk '{print $1","$3","$4","$11}' | tail -n +2) | column -t -s ","
este column Los comandos transforman datos desordenados en tablas legibles con el mínimo esfuerzo.
Ya sea que esté limpiando archivos CSV, formateando archivos de configuración o haciendo que la salida de comandos sea más legible, las columnas brindan la flexibilidad necesaria para una presentación de datos efectiva.
¿Cómo es tu experiencia con el comando de columna? Comparta sus casos de uso en los comentarios a continuación.









