דף הבית » איך ל » פיצול קובץ טקסט במחצית (או כל אחוז) על אובונטו לינוקס

    פיצול קובץ טקסט במחצית (או כל אחוז) על אובונטו לינוקס

    אם יש לך קובץ טקסט מסורבל שאתה מנסה לעבד, פיצול זה בקטעים יכול לפעמים לעזור זמן עיבוד, במיוחד אם היינו הולכים לייבא קובץ לגיליון אלקטרוני. לחלופין, ייתכן שתרצה רק לאחזר קבוצה מסוימת של שורות מקובץ.

    הזן פיצול, wc, זנב, חתול, ו- grep. (לא לשכוח sed ו awk). לינוקס מכיל סט עשיר של כלי עזר לעבודה עם קבצי טקסט בשורת הפקודה. עבור המשימה שלנו היום נשתמש פיצול wc.

    ראשית אנו נסתכל על קובץ היומן שלנו ... .

    > ls -l
    -rw-r-r-1 thegeek ggroup 42046520 2006-09-19 11:42 access.log

    אנו רואים כי גודל הקובץ הוא 42MB. זה די גדול ... אבל כמה שורות אנחנו מתמודדים עם? אם רצינו לייבא את זה לתוך Excel, היינו צריכים לשמור את זה פחות מ 65k שורות.

    בואו לבדוק את כמות השורות בקובץ באמצעות השירות wc, אשר מייצג "ספירת מילים".

    > wc -l access.log
    146330 גישה

    אנחנו הרבה מעבר לגבול שלנו. נצטרך לפצל את זה לשלושה חלקים. נשתמש בכלי השירות המפוצל כדי לעשות זאת.

    > split -l 60000 access.log
    > ls -l

    סך הכל 79124
    -rw-rw-r-1 thegeek ggroup 40465200 2006-09-19 12:00 access.log
    -rw-rw-r-1 thegeek ggroup 16598163 2006-09-19 12:05 xaa
    -rw-rw-r-1 thegeek ggroup 16596545 2006-09-19 12:05 xab
    -rw-rw-r-1 thegeek ggroup 7270492 2006-09-19 12:05 xac

    עכשיו יש לנו לפצל קבצי טקסט שלנו לתוך 3 קבצים נפרדים, כל המכיל פחות מ 60000 שורות, אשר נראה כמו מספר טוב לבחור. הקובץ האחרון מכיל את הסכום שנותר. אם היית הולך לחתוך את הקובץ הזה לחצי, היית עושה את זה:

    > spl -l 73165 access.log

    ו, זה כל מה שיש.