Đọc tệp CSV trong Bash

Doc Tep Csv Trong Bash



Dạng đầy đủ của CSV là Giá trị được phân tách bằng dấu phẩy. Tệp CSV được người viết mã sử dụng cho nhiều mục đích lưu trữ dữ liệu ở định dạng bảng bán cấu trúc. Mỗi dòng của tệp được coi là một hàng của bảng và mỗi trường của hàng được phân tách bằng dấu phẩy (,) trong tệp CSV. Có nhiều cách tồn tại trong Bash để đọc các tệp CSV được giải thích trong hướng dẫn này.

điều kiện tiên quyết:

Bạn phải tạo một tệp CSV trước khi thực hành ví dụ của hướng dẫn này. Tạo tệp CSV có tên “customers.csv” với nội dung sau để kiểm tra đầu ra của tập lệnh được sử dụng trong hướng dẫn này. Trong tập tin này, 3 thứ trường của 4 quần què dòng và 6 quần què dòng trống.

ID, Tên, Email, Địa chỉ, Di động

101 , Jafar Iqbal, Jafar @ gmail.com, 9 / Một Dhanmondi Dhaka, + 8801762341425

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

103 Nirob Chowdhury 33 / 2 Jigatola Dhaka, 8801754532312

104 Farheen Hasan @ gmail.com < Một href = 'trống' > , Một > 10 Kadhalbagun Dhaka, + 8801512875634

105 , Md. Rahim,, 2 / B Dhanmondi Dhaka, + 8801700453423

Các cách khác nhau để đọc tệp CSV trong Bash

Tệp CSV có thể được phân tích cú pháp theo nhiều cách khác nhau bằng cách sử dụng tập lệnh Bash. Các cách khác nhau để đọc tệp “customers.csv” được trình bày trong phần hướng dẫn này.







Ví dụ 1: Đọc nội dung gốc của tệp CSV

Tạo một tệp Bash với tập lệnh sau để đọc toàn bộ nội dung của tệp “customers.csv” bằng cách sử dụng vòng lặp “while”:



#!/bin/bash

#Đặt tên tệp

tên tập tin = 'khách hàng.csv'

# Đọc từng dòng của tệp trong mỗi lần lặp

trong khi đọc dữ liệu

LÀM

#In dòng

tiếng vang dữ liệu $

xong < tên tệp $

Đầu ra sau xuất hiện sau khi thực thi tập lệnh:







Ví dụ 2: Đọc tệp CSV bằng cách viết hoa tiêu đề

Dòng đầu tiên của tệp “customers.csv” chứa tiêu đề của tệp. Tạo một tệp Bash với tập lệnh sau để in nội dung của tệp “customers.csv” sau khi viết hoa dòng đầu tiên của tệp. Lệnh “awk” được sử dụng trong tập lệnh để in nội dung của tệp sau khi viết hoa tiêu đề. Dấu phẩy (,) được chỉ định trong các giá trị FS và OFS trong tập lệnh để đọc tệp “customers.csv” và ghi tệp “updatedcustomers.csv”. Lệnh “cat” được sử dụng để in nội dung của cả hai tệp.

bản inf 'Hồ sơ gốc: \N '

#In nội dung gốc của tệp CSV

con mèo cstomers.csv

#Tạo tệp CSV mới sau khi viết hoa tiêu đề

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

{

nếu (NR==1)

in trên cùng($0)

khác

in

}'
khách hàng.csv > cập nhậtkhách hàng.csv

bản inf ' \N Tệp đã sửa đổi: \N '

#In tệp CSV mới

con mèo cập nhậtkhách hàng.csv

Đầu ra sau xuất hiện sau khi thực thi tập lệnh:



Ví dụ 3: Thay thế Trường trống của Tệp CSV bằng “Không”

Tạo tệp Bash bằng tập lệnh sau để in nội dung của tệp “customers.csv” sau khi sửa đổi trường trống bằng giá trị “Không”. Hai trường trống trong tệp này được đề cập sau đây. Lệnh “awk” được sử dụng trong tập lệnh để in nội dung của tệp sau khi sửa đổi các trường trống. Dấu phẩy (,) được chỉ định trong các giá trị FS và OFS trong tập lệnh để đọc tệp “customers.csv” và ghi tệp “updatedcustomers.csv”. Lệnh “cat” được sử dụng để in nội dung của cả hai tệp ở định dạng bảng.

bản inf 'Hồ sơ gốc: \N '

#In nội dung gốc của tệp CSV ở dạng bảng

con mèo khách hàng.csv | cột, -t

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

{

for(trường=1;trường<=NF;trường++)

{

if($field == '') $field='Không có'

}

in

}'
khách hàng.csv > khách hàng đã sửa đổi2.csv

bản inf ' \N Tệp đã sửa đổi: \N '

#In tệp CSV mới ở dạng bảng

con mèo khách hàng đã sửa đổi2.csv | cột, -t

Đầu ra sau xuất hiện sau khi thực thi tập lệnh:

Ví dụ 4: In Tổng số Hàng và Cột của Tệp CSV

Tạo một tệp Bash với tập lệnh sau để đếm tổng số hàng và cột trong tệp “customers.csv”. Biến NR được sử dụng để in tổng số hàng của tệp. Biến NF được sử dụng để in tổng số trường của tệp.

bản inf 'Hồ sơ gốc: \N '

#In nội dung gốc của tệp CSV

con mèo khách hàng.csv

tiếng vang

tiếng vang -N 'Tổng số hàng:'

awk -F, 'KẾT THÚC{in NR}' khách hàng.csv

tiếng vang -N 'Tổng số cột:'

awk -F, 'KẾT THÚC{in NF}' khách hàng.csv

Đầu ra sau xuất hiện sau khi thực thi tập lệnh. Tổng số dòng trong tệp là 6 và tổng số trường của tệp là 5 được in ở đầu ra:

Phần kết luận

Các phương pháp đọc tệp CSV, sửa đổi tệp CSV và đếm các hàng và cột của tệp CSV bằng cách sử dụng tập lệnh Bash được hiển thị trong hướng dẫn này.