đ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 động101 , 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.