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óvil101 , 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.