Чтение CSV-файла в Bash

Ctenie Csv Fajla V Bash



Полная форма CSV — значение, разделенное запятыми. Файл CSV используется кодировщиком для многих целей, которые хранят данные в табличном формате полуструктур. Каждая строка файла обрабатывается как строка таблицы, и каждое поле строки отделяется запятой (,) в файле CSV. В Bash существует множество способов чтения файлов CSV, которые объясняются в этом руководстве.

Предпосылки:

Вы должны создать файл CSV, прежде чем практиковать пример этого руководства. Создайте файл CSV с именем «customers.csv» со следующим содержимым, чтобы проверить выходные данные сценария, используемого в этом руководстве. В этом файле 3 рд поля 4 й линия и 6 й строка пуста.

ID, имя, электронная почта, адрес, мобильный

101 , Джафар Икбал, Джафар @ gmail.com, 9 / Дханмонди Дакка, + 8801762341425

102 , Камаль Хоссейн, Камаль @ gmail.com, 120 Мирпур Дакка, 8801988675345

103 Нироб Чоудхури 33 / 2 Джигатола Дакка, 8801754532312

104 Фархин Хасан @ gmail.com < а href '=' 'пустой' > , а > 10 Кадхалбагун Дакка, + 8801512875634

105 , Мд. Рахим,, 2 / Б Дханмонди Дакка, + 8801700453423

Различные способы чтения файла CSV в Bash

Файл CSV можно анализировать различными способами с помощью сценария Bash. В этой части руководства показаны различные способы чтения файла «customers.csv».







Пример 1. Чтение исходного содержимого CSV-файла

Создайте файл Bash со следующим скриптом, который считывает полное содержимое файла «customers.csv» с помощью цикла «пока»:



#!/бин/баш

#Установить имя файла

имя файла '=' 'клиенты.csv'

#Читать каждую строку файла на каждой итерации

пока читать данные

делать

#Распечатать строку

эхо $данные

сделанный < $filename

После выполнения скрипта появляется следующий вывод:







Пример 2. Чтение CSV-файла с использованием заглавных букв в заголовке

Первая строка файла «customers.csv» содержит заголовок файла. Создайте файл Bash со следующим сценарием, который печатает содержимое файла «customers.csv» после заглавной буквы в первой строке файла. Команда «awk» используется в скрипте для печати содержимого файла после написания заголовка с заглавной буквы. Запятая (,) назначается в значениях FS и OFS в сценарии для чтения файла «customers.csv» и записи файла «updatedcustomers.csv». Команда «cat» используется для печати содержимого обоих файлов.

printf 'Исходный файл: \n '

#Распечатать исходное содержимое CSV-файла

кот cstomers.csv

#Создать новый файл CSV после заглавных букв

аук 'НАЧАЛО {FS=',';OFS=','}

{

если(NR==1)

распечатать топпер($0)

еще

Распечатать

}'
клиенты.csv > обновленныйcustomers.csv

printf ' \n Измененный файл: \n '

# Распечатайте новый файл CSV

кот обновленныйcustomers.csv

После выполнения скрипта появляется следующий вывод:



Пример 3. Замените пустое поле CSV-файла на «Нет».

Создайте файл Bash со следующим сценарием, который печатает содержимое файла «customers.csv» после изменения пустого поля со значением «Нет». В этом файле пусты два поля, о которых говорится ниже. Команда «awk» используется в сценарии для печати содержимого файла после изменения пустых полей. Запятая (,) назначается в значениях FS и OFS в сценарии для чтения файла «customers.csv» и записи файла «updatedcustomers.csv». Команда «cat» используется для печати содержимого обоих файлов в табличном формате.

printf 'Исходный файл: \n '

#Распечатать исходное содержимое CSV-файла в виде таблицы

кот клиенты.csv | столбец -s,

аук 'НАЧАЛО {FS=',';OFS=','}

{

для (поле = 1; поле <= NF; поле ++)

{

если ($ поле == '') $ поле = 'Нет'

}

Распечатать

}'
клиенты.csv > модифицированные клиенты2.csv

printf ' \n Измененный файл: \n '

#Распечатать новый файл CSV в виде таблицы

кот модифицированные клиенты2.csv | столбец -s,

После выполнения скрипта появляется следующий вывод:

Пример 4. Распечатайте общее количество строк и столбцов CSV-файла

Создайте файл Bash со следующим сценарием, который подсчитывает общее количество строк и столбцов в файле «customers.csv». Переменная NR используется для печати общего количества строк файла. Переменная NF используется для печати общего количества полей файла.

printf 'Исходный файл: \n '

#Распечатать исходное содержимое CSV-файла

кот клиенты.csv

эхо

эхо 'Всего строк:'

аук -Ф, 'КОНЕЦ{печатать NR}' клиенты.csv

эхо 'Всего столбцов:'

аук -Ф, 'КОНЕЦ{печать НФ}' клиенты.csv

Следующий вывод появляется после выполнения скрипта. Всего строк в файле 6, а всего полей файла 5, которые выводятся на выходе:

Заключение

В этом руководстве показаны методы чтения CSV-файла, изменения CSV-файла и подсчета строк и столбцов CSV-файла с помощью сценария Bash.