การแยกวิเคราะห์ไฟล์ข้อความเป็นหนึ่งในเหตุผลที่ Perl เป็นเครื่องมือสร้างสคริปต์และขุดข้อมูลที่ยอดเยี่ยม
ดังที่คุณจะเห็นด้านล่างนี้ โดยพื้นฐานแล้ว Perl สามารถใช้เพื่อจัดรูปแบบกลุ่มข้อความใหม่ได้ หากคุณดูที่ข้อความส่วนแรกและส่วนสุดท้ายที่ด้านล่างของหน้า คุณจะเห็นว่าโค้ดที่อยู่ตรงกลางคือสิ่งที่เปลี่ยนชุดแรกเป็นชุดที่สอง
วิธีแยกวิเคราะห์ไฟล์ข้อความ
ตัวอย่างเช่น ลองสร้างโปรแกรมขนาดเล็กที่เปิดไฟล์ข้อมูลที่คั่นด้วยแท็บและแยกวิเคราะห์คอลัมน์เป็นสิ่งที่เราสามารถใช้ได้
ตัวอย่างเช่น เจ้านายของคุณส่งไฟล์ที่มีรายชื่อ อีเมล และหมายเลขโทรศัพท์ให้คุณ และเขาต้องการให้คุณอ่านไฟล์และทำบางอย่างกับข้อมูล เช่น เก็บไว้ในฐานข้อมูลหรือพิมพ์ออกมา . ในรายงานที่มีรูปแบบสวยงาม
คอลัมน์ของไฟล์ถูกคั่นด้วยอักขระ TAB และจะมีลักษณะดังนี้:
แลร์รี[ป้องกันอีเมล] 111-1111
Curly [ป้องกันอีเมล] 222-2222
โม[ป้องกันอีเมล] 333-3333
นี่คือรายการทั้งหมดที่เราจะทำงานร่วมกับ:
#!/usr/bin/perl
เปิด (ไฟล์ 'data.txt');
ในขณะที่ (<FILE>) {
กัด;
($ชื่อ, $อีเมล, $โทรศัพท์) = แยก ("t");
พิมพ์ "ชื่อ: $namen";
พิมพ์ "อีเมล: $mail";
พิมพ์ "โทรศัพท์: $phonenon";
พิมพ์ "---------น";
}
ปิดไฟล์);
ทางออก;
หมายเหตุ: วิธีนี้จะแยกโค้ดออกจากบทช่วยสอนเกี่ยวกับ การ อ่านและเขียนไฟล์ใน Perl
สิ่งแรกที่ต้องทำคือเปิดไฟล์ชื่อ data.txt (ซึ่งต้องอยู่ในไดเร็กทอรีเดียวกันกับสคริปต์ Perl) จากนั้นจะอ่านไฟล์ในตัวแปร catchall $_ ทีละบรรทัด ในกรณีนี้ $_ เป็นนัยและไม่ได้ใช้จริงในโค้ด
หลังจากอ่านบรรทัดแล้ว ช่องว่างต่อท้ายจะ ถูก ลบออก จากนั้นใช้ฟังก์ชันแยกเพื่อแบ่งบรรทัดที่อักขระแท็บ ในกรณี นี้แท็บจะแสดงด้วยรหัสt ทางด้านซ้ายของเครื่องหมายหาร คุณจะเห็นว่าฉันกำลังกำหนดกลุ่มของตัวแปรที่แตกต่างกันสามตัว สิ่งเหล่านี้แทนหนึ่งสำหรับแต่ละคอลัมน์ของบรรทัด
สุดท้าย ตัวแปรแต่ละตัวที่ถูกแยกออกจากบรรทัดไฟล์จะถูกพิมพ์แยกกัน เพื่อให้คุณสามารถดูวิธีการเข้าถึงข้อมูลในแต่ละคอลัมน์ทีละรายการ
ผลลัพธ์ของสคริปต์ควรเป็นดังนี้:
ชื่อ: แลร์รี่
อีเมล: [ป้องกันอีเมล]
โทรศัพท์: 111-1111
---------
ชื่อ: หยิก
อีเมล: [ป้องกันอีเมล]
โทรศัพท์: 222-2222
---------
ชื่อ:โม
อีเมล: [ป้องกันอีเมล]
โทรศัพท์: 333-3333
---------
แม้ว่าเราจะแค่พิมพ์ข้อมูลในตัวอย่างนี้ การจัดเก็บข้อมูลที่แยกวิเคราะห์เดียวกันจากไฟล์ TSV หรือ CSV ลงในฐานข้อมูลที่สมบูรณ์อาจเป็นเรื่องง่ายเล็กน้อย