Leia o arquivo CSV no Bash

Leia O Arquivo Csv No Bash



A forma completa do CSV é Valor separado por vírgula. O arquivo CSV é usado pelo codificador para muitas finalidades que armazenam os dados em formato tabular de semiestruturas. Cada linha do arquivo é tratada como uma linha da tabela e cada campo da linha é separado por vírgula (,) no arquivo CSV. Existem muitas maneiras no Bash de ler os arquivos CSV que são explicados neste tutorial.

Pré-requisitos:

Você precisa criar um arquivo CSV antes de praticar o exemplo deste tutorial. Crie um arquivo CSV denominado “customers.csv” com o seguinte conteúdo para verificar a saída do script usado neste tutorial. Neste arquivo, os 3 terceiro campos do 4 º linha e 6 º linha estão vazias.

ID, nome, e-mail, endereço, celular

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

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

103 Nirob Chowdhury 33 / 2 Jigatola Daca, 8801754532312

104 Farheen Hasan @ gmail.com < a href = 'em branco' > , a > 10 Kadhalbagun Daca, + 8801512875634

105 , MD. Rahim,, 2 / B Dhanmondi Daca, + 8801700453423

Diferentes maneiras de ler o arquivo CSV no Bash

O arquivo CSV pode ser analisado de diferentes maneiras usando um script Bash. Diferentes maneiras de ler o arquivo “customers.csv” são mostradas nesta parte do tutorial.







Exemplo 1: leia o conteúdo original do arquivo CSV

Crie um arquivo Bash com o seguinte script que lê o conteúdo completo do arquivo “customers.csv” usando o loop “while”:



#!/bin/bash

#Defina o nome do arquivo

nome do arquivo = 'clientes.csv'

#Leia cada linha do arquivo em cada iteração

enquanto ler dados

fazer

#Imprime a linha

eco $dados

feito < $arquivo

A seguinte saída aparece após a execução do script:







Exemplo 2: leia o arquivo CSV colocando o cabeçalho em maiúscula

A primeira linha do arquivo “customers.csv” contém o cabeçalho do arquivo. Crie um arquivo Bash com o seguinte script que imprime o conteúdo do arquivo “customers.csv” depois de colocar em maiúscula a primeira linha do arquivo. O comando “awk” é usado no script para imprimir o conteúdo do arquivo após capitalizar o cabeçalho. A vírgula (,) é atribuída nos valores FS e OFS no script para ler o arquivo “customers.csv” e gravar o arquivo “updatedcustomers.csv”. O comando “cat” é usado para imprimir o conteúdo de ambos os arquivos.

printf 'Arquivo Original: \n '

#Imprima o conteúdo original do arquivo CSV

gato clientes.csv

#Cria um novo arquivo CSV após capitalizar o cabeçalho

estranho 'BEGIN{FS=',';OFS=','}

{

se(NR==1)

impressão superior ($0)

outro

imprimir

}'
clientes.csv > clientes atualizados.csv

printf ' \n Arquivo modificado: \n '

#Imprima o novo arquivo CSV

gato clientes atualizados.csv

A seguinte saída aparece após a execução do script:



Exemplo 3: substitua o campo vazio do arquivo CSV por “Nenhum”

Crie um arquivo Bash com o seguinte script que imprime o conteúdo do arquivo “customers.csv” após modificar o campo vazio com o valor “None”. Dois campos estão vazios neste arquivo que são mencionados a seguir. O comando “awk” é utilizado no script para imprimir o conteúdo do arquivo após modificar os campos vazios. A vírgula (,) é atribuída nos valores FS e OFS no script para ler o arquivo “customers.csv” e gravar o arquivo “updatedcustomers.csv”. O comando “cat” é usado para imprimir o conteúdo de ambos os arquivos no formato tabular.

printf 'Arquivo original: \n '

#Imprima o conteúdo original do arquivo CSV em formato tabular

gato clientes.csv | coluna -s, -t

estranho 'BEGIN{FS=',';OFS=','}

{

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

{

if($campo == '') $campo='Nenhum'

}

imprimir

}'
clientes.csv > clientesmodificados2.csv

printf ' \n Arquivo modificado: \n '

#Imprima o novo arquivo CSV em formato tabular

gato clientesmodificados2.csv | coluna -s, -t

A seguinte saída aparece após a execução do script:

Exemplo 4: imprimir o número total de linhas e colunas do arquivo CSV

Crie um arquivo Bash com o seguinte script que conta o número total de linhas e colunas no arquivo “customers.csv”. A variável NR é usada para imprimir o número total de linhas do arquivo. A variável NF é utilizada para imprimir o número total de campos do arquivo.

printf 'Arquivo original: \n '

#Imprima o conteúdo original do arquivo CSV

gato clientes.csv

eco

eco -n 'Total de linhas:'

estranho -F, 'END{imprimir NR}' clientes.csv

eco -n 'Colunas totais:'

estranho -F, 'END{imprimir NF}' clientes.csv

A saída a seguir aparece após a execução do script. O total de linhas no arquivo é 6 e o ​​total de campos do arquivo é 5 que são impressos na saída:

Conclusão

Os métodos de leitura de um arquivo CSV, modificação do arquivo CSV e contagem das linhas e colunas do arquivo CSV usando o script Bash são mostrados neste tutorial.