ข้อกำหนดเบื้องต้น:
คุณต้องสร้างไฟล์ CSV ก่อนฝึกตามตัวอย่างบทช่วยสอนนี้ สร้างไฟล์ CSV ชื่อ “customers.csv” โดยมีเนื้อหาต่อไปนี้เพื่อตรวจสอบผลลัพธ์ของสคริปต์ที่ใช้ในบทช่วยสอนนี้ ในไฟล์นี้ 3 ถ ช่องที่ 4 ไทย บรรทัดและ 6 ไทย สายว่างเปล่า
ID, ชื่อ, อีเมล, ที่อยู่, มือถือ101 จาฟาร์ อิกบาล จาฟาร์ @ gmail.com, 9 / A Dhanmondi ธากา, + 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” โดยใช้ลูป “ while”:
#!/bin/bash
#ตั้งชื่อไฟล์
ชื่อไฟล์ = 'customers.csv'
# อ่านแต่ละบรรทัดของไฟล์ในการวนซ้ำแต่ละครั้ง
ในขณะที่ อ่าน ข้อมูล
ทำ
#พิมพ์ไลน์
เสียงสะท้อน ข้อมูล $
เสร็จแล้ว < $ชื่อไฟล์
ผลลัพธ์ต่อไปนี้ปรากฏขึ้นหลังจากเรียกใช้สคริปต์:
ตัวอย่างที่ 2: อ่านไฟล์ CSV โดยทำให้ส่วนหัวเป็นตัวพิมพ์ใหญ่
บรรทัดแรกของไฟล์ “customers.csv” มีส่วนหัวของไฟล์ สร้างไฟล์ Bash ด้วยสคริปต์ต่อไปนี้ที่พิมพ์เนื้อหาของไฟล์ “customers.csv” หลังจากพิมพ์บรรทัดแรกของไฟล์เป็นตัวพิมพ์ใหญ่ คำสั่ง “awk” ใช้ในสคริปต์เพื่อพิมพ์เนื้อหาของไฟล์หลังจากพิมพ์ส่วนหัวเป็นตัวพิมพ์ใหญ่ เครื่องหมายจุลภาค (,) ถูกกำหนดไว้ในค่า FS และ OFS ในสคริปต์เพื่ออ่านไฟล์ “customers.csv” และเขียนไฟล์ “updatedcustomers.csv” คำสั่ง 'cat' ใช้เพื่อพิมพ์เนื้อหาของไฟล์ทั้งสอง
พิมพ์ฉ 'ไฟล์ต้นฉบับ: \n '#พิมพ์เนื้อหาต้นฉบับของไฟล์ CSV
แมว cstomers.csv
#สร้างไฟล์ CSV ใหม่หลังจากพิมพ์ส่วนหัวเป็นตัวพิมพ์ใหญ่
อึดอัด 'เริ่มต้น{FS=',';OFS=','}
{
ถ้า(NR==1)
พิมพ์ท็อปเปอร์ ($0)
อื่น
พิมพ์
}' ลูกค้า.csv > อัปเดตcustomers.csv
พิมพ์ฉ ' \n ไฟล์ที่แก้ไข: \n '
#พิมพ์ไฟล์ CSV ใหม่
แมว อัปเดตcustomers.csv
ผลลัพธ์ต่อไปนี้ปรากฏขึ้นหลังจากเรียกใช้สคริปต์:
ตัวอย่างที่ 3: แทนที่ฟิลด์ว่างของไฟล์ CSV ด้วย 'ไม่มี'
สร้างไฟล์ Bash ด้วยสคริปต์ต่อไปนี้ที่พิมพ์เนื้อหาของไฟล์ “customers.csv” หลังจากแก้ไขฟิลด์ว่างด้วยค่า “ไม่มี” สองฟิลด์ว่างเปล่าในไฟล์นี้ซึ่งจะกล่าวถึงต่อไปนี้ คำสั่ง 'awk' ใช้ในสคริปต์เพื่อพิมพ์เนื้อหาของไฟล์หลังจากแก้ไขฟิลด์ว่าง เครื่องหมายจุลภาค (,) ถูกกำหนดไว้ในค่า FS และ OFS ในสคริปต์เพื่ออ่านไฟล์ “customers.csv” และเขียนไฟล์ “updatedcustomers.csv” คำสั่ง 'cat' ใช้เพื่อพิมพ์เนื้อหาของไฟล์ทั้งสองในรูปแบบตาราง
พิมพ์ฉ 'ไฟล์ต้นฉบับ: \n '#พิมพ์เนื้อหาต้นฉบับของไฟล์ CSV ในรูปแบบตาราง
แมว ลูกค้า.csv | คอลัมน์ -s, -t
อึดอัด 'เริ่มต้น{FS=',';OFS=','}
{
สำหรับ (ฟิลด์ = 1; ฟิลด์ <= NF; ฟิลด์ ++)
{
ถ้า($field == '') $field='ไม่มี'
}
พิมพ์
}' ลูกค้า.csv > แก้ไขcustomers2.csv
พิมพ์ฉ ' \n ไฟล์ที่แก้ไข: \n '
#พิมพ์ไฟล์ CSV ใหม่ในรูปแบบตาราง
แมว แก้ไขcustomers2.csv | คอลัมน์ -s, -t
ผลลัพธ์ต่อไปนี้ปรากฏขึ้นหลังจากเรียกใช้สคริปต์:
ตัวอย่างที่ 4: พิมพ์จำนวนแถวและคอลัมน์ทั้งหมดของไฟล์ CSV
สร้างไฟล์ Bash ด้วยสคริปต์ต่อไปนี้ที่นับจำนวนแถวและคอลัมน์ทั้งหมดในไฟล์ “customers.csv” ตัวแปร NR ใช้เพื่อพิมพ์จำนวนแถวทั้งหมดของไฟล์ ตัวแปร NF ใช้เพื่อพิมพ์จำนวนฟิลด์ทั้งหมดของไฟล์
พิมพ์ฉ 'ไฟล์ต้นฉบับ: \n '#พิมพ์เนื้อหาต้นฉบับของไฟล์ CSV
แมว ลูกค้า.csv
เสียงสะท้อน
เสียงสะท้อน -น 'แถวทั้งหมด:'
อึดอัด -F, 'สิ้นสุด{พิมพ์ NR}' ลูกค้า.csv
เสียงสะท้อน -น 'คอลัมน์ทั้งหมด:'
อึดอัด -F, 'จบ{พิมพ์ NF}' ลูกค้า.csv
ผลลัพธ์ต่อไปนี้ปรากฏขึ้นหลังจากเรียกใช้งานสคริปต์ บรรทัดทั้งหมดในไฟล์คือ 6 และฟิลด์ทั้งหมดของไฟล์คือ 5 ซึ่งพิมพ์ในเอาต์พุต:
บทสรุป
วิธีการอ่านไฟล์ CSV การแก้ไขไฟล์ CSV และการนับแถวและคอลัมน์ของไฟล์ CSV โดยใช้สคริปต์ Bash แสดงอยู่ในบทช่วยสอนนี้