Leer el archivo CSV en Bash

Leer El Archivo Csv En Bash



La forma completa de CSV es Valor separado por comas. El codificador utiliza el archivo CSV para muchos propósitos que almacenan los datos en formato tabular de semiestructuras. Cada línea del archivo se trata como una fila de la tabla y cada campo de la fila está separado por una coma (,) en el archivo CSV. Existen muchas formas en Bash para leer los archivos CSV que se explican en este tutorial.

requisitos previos:

Tienes que crear un archivo CSV antes de practicar el ejemplo de este tutorial. Cree un archivo CSV llamado 'customers.csv' con el siguiente contenido para verificar el resultado del script que se usa en este tutorial. En este archivo, los 3 rd campos de los 4 el línea y 6 el línea están vacías.

ID, nombre, correo electrónico, dirección, móvil

101 , Jafar Iqbal, Jafar @ gmail.com, 9 / Un Dhanmondi Dhaka, + 8801762341425

102 , Kamal Hossain, Kamal @ gmail.com, 120 Mirpur Dacca, 8801988675345

103 Nirob Chowdhury 33 / 2 Jigatola Dacca, 8801754532312

104 farheen hasan @ gmail.com < a href = 'blanco' > , a > 10 Kadhalbagun Dhaka, + 8801512875634

105 , Maryland Rahim,, 2 / B Dhanmondi Dhaka, + 8801700453423

Diferentes formas de leer el archivo CSV en Bash

El archivo CSV se puede analizar de diferentes maneras utilizando un script Bash. En esta parte del tutorial se muestran diferentes formas de leer el archivo 'customers.csv'.







Ejemplo 1: leer el contenido original del archivo CSV

Cree un archivo Bash con el siguiente script que lea el contenido completo del archivo 'customers.csv' usando el ciclo 'while':



#!/bin/bash

#Establece el nombre del archivo

Nombre del archivo = 'clientes.csv'

#Leer cada línea del archivo en cada iteración

mientras leer datos

hacer

#Imprime la linea

eco $datos

hecho < $nombre de archivo

El siguiente resultado aparece después de ejecutar el script:







Ejemplo 2: lea el archivo CSV poniendo en mayúscula el encabezado

La primera línea del archivo 'customers.csv' contiene el encabezado del archivo. Cree un archivo Bash con el siguiente script que imprima el contenido del archivo 'customers.csv' después de poner en mayúsculas la primera línea del archivo. El comando 'awk' se usa en el script para imprimir el contenido del archivo después de poner en mayúscula el encabezado. La coma (,) se asigna en los valores FS y OFS en el script para leer el archivo 'customers.csv' y escribir el archivo 'updatedcustomers.csv'. El comando 'cat' se utiliza para imprimir el contenido de ambos archivos.

imprimir 'Archivo original: \norte '

#Imprimir el contenido original del archivo CSV

gato cstomers.csv

#Crear un nuevo archivo CSV después de poner en mayúscula el encabezado

awk 'COMENZAR{FS=',';OFS=','}

{

si(NR==1)

topper de impresión ($ 0)

demás

imprimir

}'
clientes.csv > clientes actualizados.csv

imprimir ' \norte Archivo modificado: \norte '

#Imprimir el nuevo archivo CSV

gato clientes actualizados.csv

El siguiente resultado aparece después de ejecutar el script:



Ejemplo 3: Reemplace el campo vacío del archivo CSV con 'Ninguno'

Cree un archivo Bash con el siguiente script que imprime el contenido del archivo 'customers.csv' después de modificar el campo vacío con el valor 'Ninguno'. Dos campos están vacíos en este archivo que se mencionan a continuación. El comando 'awk' se usa en el script para imprimir el contenido del archivo después de modificar los campos vacíos. La coma (,) se asigna en los valores FS y OFS en el script para leer el archivo 'customers.csv' y escribir el archivo 'updatedcustomers.csv'. El comando 'cat' se utiliza para imprimir el contenido de ambos archivos en formato tabular.

imprimir 'Archivo original: \norte '

#Imprimir el contenido original del archivo CSV en forma tabular

gato clientes.csv | columna -s, -t

awk 'COMENZAR{FS=',';OFS=','}

{

for(campo=1;campo<=NF;campo++)

{

if($campo == '') $campo='Ninguno'

}

imprimir

}'
clientes.csv > modificadoclientes2.csv

imprimir ' \norte Archivo modificado: \norte '

#Imprimir el nuevo archivo CSV en formato tabular

gato modificadoclientes2.csv | columna -s, -t

 

El siguiente resultado aparece después de ejecutar el script:

Ejemplo 4: Imprima el número total de filas y columnas del archivo CSV

Cree un archivo Bash con el siguiente script que cuente el número total de filas y columnas en el archivo 'customers.csv'. La variable NR se utiliza para imprimir el número total de filas del archivo. La variable NF se utiliza para imprimir el número total de campos del archivo.

imprimir 'Archivo original: \norte '

#Imprimir el contenido original del archivo CSV

gato clientes.csv

eco

eco -norte 'Filas totales:'

awk -F, 'FIN{imprimir NR}' clientes.csv

eco -norte 'Columnas totales:'

awk -F, 'FIN{imprimir NF}' clientes.csv

El siguiente resultado aparece después de ejecutar el script. El total de líneas en el archivo es 6 y el total de campos del archivo es 5 que se imprimen en la salida:

Conclusión

En este tutorial se muestran los métodos para leer un archivo CSV, modificar el archivo CSV y contar las filas y columnas del archivo CSV mediante el script Bash.