
Puede preguntarse, ¿por qué un usuario estaría interesado en anotar/contar el número de columnas en un archivo? Este segmento de nuestro tutorial se incluye en la gestión de archivos de Linux. A CSV (Valor separado por comas) es un formato de archivo favorito para muchos usuarios de Linux para el mantenimiento de registros de datos debido a las siguientes ventajas:
- Puede usar casi cualquier editor de texto, por ejemplo, el bloc de notas para abrir y editar archivos CSV.
- El esquema CSV es relativamente plano y simple, por lo tanto, aplicable en el almacenamiento de datos.
- Puede usar cualquier lenguaje de programación para generar y analizar datos CSV rápidamente.
- CSV no manipula los datos almacenados y diferencia claramente los textos de los valores numéricos.
- Mientras que otros formatos de archivo de registro de datos pueden requerir una etiqueta de inicio y final para cada columna creada, la simplicidad de CSV permite escribir columnas de encabezado solo una vez.
- CSV es amigable con la memoria y más rápido de importar.
- CSV imita un archivo de texto simple, por lo tanto, es fácil de manipular mediante programación.
- CSV es legible por humanos.
Este tutorial nos guiará a través de enfoques viables para contar la cantidad de columnas en un archivo que imita los atributos de un archivo CSV.
Planteamiento del problema
Necesitamos tener una muestra CSV archivo como referencia a lo largo de este artículo. Por lo tanto, considere la existencia del siguiente archivo CSV.
$ nano sample_data.csv
El archivo representado en la captura de pantalla anterior asume los atributos de un CSV archivo ya que cada valor/dato en él está separado por una coma.
Uso del comando head para recuperar la primera fila
Supongamos que estamos tratando con un archivo que tiene columnas uniformes. Si la última afirmación es verdadera, entonces cualquiera de las filas del archivo de muestra anterior debería ayudarnos directamente a determinar el número total de columnas en él.
El comando excelente para usar aquí es el cabeza comando, que es parte del GNU Coreutils paquete y debería estar disponible en casi todas las distribuciones del sistema operativo Linux.
La aplicabilidad primaria de la cabeza El comando es recuperar la primera parte de un archivo de destino. A continuación se muestra su sintaxis de uso:
$ head [OPTION]... [FILE]...
Para generar la primera fila de nuestro archivo CSV de muestra, ejecutaremos:
$ head -1 sample_data.csv

Para generar las primeras tres filas del archivo CSV, ejecutaremos:
$ head -3 sample_data.csv

Ahora estamos listos para contar el número de columnas en este archivo:
Método 1: Usar los comandos head + sed + wc
los sed El comando es efectivo para filtrar y transformar el texto del archivo de entrada. Supongamos que estamos tratando con los resultados de la primera fila de la cabeza comando que ejecutamos anteriormente, canalizando el cabeza resultado del comando a lo siguiente sed El comando ignorará todo y solo mostrará los caracteres de coma.
$ head -1 sample_data.csv | sed 's/[^,]//g'

Como habrás notado, el comando anterior ha generado 6 comas Volveremos a canalizar esta salida al comando wc que contará estos caracteres de coma más el carro (\n)
carácter como el número total de columnas.
$ head -1 sample_data.csv | sed 's/[^,]//g' | wc -c

Hemos determinado con éxito el número de columnas en nuestro archivo CSV como 7.
Método 2: usar los comandos head + awk
los awk El comando es efectivo para escanear patrones de un archivo de entrada. Es parte del paquete Free Software Foundation.
$ head -1 sample_data.csv | awk -F, '{print NF}'
La opción de comando awk -F
recupera los separadores de campo en la primera fila del archivo CSV que luego se imprime como numérico (-N)
caracteres por la porción de comando '{print NF}'
.

Con esta guía, ahora podemos contar cómodamente la cantidad de columnas en un archivo en Linux.
También te puede interesar leer los siguientes artículos relacionados: