ניתוח קבצי טקסט הוא אחת הסיבות לכך שפרל עושה כלי נהדר לכריית נתונים וסקריפטים.
כפי שתראה בהמשך, ניתן להשתמש בפרל כדי לעצב מחדש את קבוצת הטקסט. אם אתה מסתכל למטה על נתח הטקסט הראשון ואז החלק האחרון בתחתית העמוד, אתה יכול לראות שהקוד באמצע הוא זה שהופך את הסט הראשון לשני.
כיצד לנתח קבצי טקסט
כדוגמה, בואו נבנה תוכנית קטנה הפותחת קובץ נתונים המופרד באמצעות טאבים, ונתח את העמודות למשהו בו אנו יכולים להשתמש.
נניח כדוגמה, שהבוס שלך מוסר לך קובץ עם רשימת שמות, דוא"ל ומספרי טלפון, והוא רוצה שתקרא הקובץ ולעשות משהו עם המידע, כמו להכניס אותו למסד נתונים או פשוט להדפיס אותו בפורמט מעוצב להגיש תלונה.
העמודות של הקובץ מופרדות עם תו ה- TAB והם ייראו כך:
להלן הרשימה המלאה בה נעבוד:
#! / usr / bin / perl
פתוח (קובץ, 'data.txt');
בזמן () {
chomp;
($ שם, $ דוא"ל, $ טלפון) = פיצול ("\ t");
הדפס "שם: $ שם \ n";
הדפס "דוא"ל: $ אימייל \ n";
הדפס "טלפון: $ טלפון \ n";
הדפס "\ n";
}
סגור (קובץ);
יציאה;
הערה: זה שואב קצת קוד מההדרכה הלאה כיצד לקרוא ולכתוב קבצים בפרל.
מה שהוא עושה קודם הוא לפתוח א קובץ נקרא data.txt (זה אמור להיות באותה ספריה כמו סקריפט Perl). לאחר מכן, הוא קורא את הקובץ בתוך משתנה הכל $ $ _ שורה אחר שורה. במקרה זה, ה- $ _ הוא משתמע ולא משתמשים בפועל בקוד.
לאחר קריאה בשורה, כל מרחב לבן הוא נתח בסוף זה. לאחר מכן, הפונקציה המפוצלת משמשת לשבירת הקו בתו הלשונית. במקרה זה הלשונית מיוצגת על ידי הקוד \ t. משמאל לסימן הפיצול תראה שאני מקצה קבוצה של שלושה משתנים שונים. אלה מייצגים אחת לכל עמודה בשורה.
לבסוף, כל משתנה שפוצל משורת הקובץ מודפס בנפרד כך שתוכלו לראות כיצד לגשת לנתונים של כל עמודה בנפרד.
הפלט של התסריט אמור להיראות כך:
שם: לארי
דוא"ל: [email protected]
טלפון: 111-1111
שם: מתולתל
דוא"ל: [email protected]
טלפון: 222-2222
שם: מו
דוא"ל: [email protected]
טלפון: 333-3333
למרות שבדוגמה זו אנו מדפיסים את הנתונים, קל יהיה לשמור בצורה נמוכה על אותו מידע שמנתח מקובץ TSV או CSV, במסד נתונים מלא.