Домашня » як » Розділити текстовий файл наполовину (або будь-який відсоток) на Ubuntu Linux

    Розділити текстовий файл наполовину (або будь-який відсоток) на Ubuntu Linux

    Якщо у вас є громіздкий текстовий файл, який ви намагаєтеся обробити, розбиття його на розділи іноді допомагає час обробки, особливо якщо ми збираємося імпортувати файл у таблицю. Або ви можете просто отримати певний набір рядків з файлу.

    Введіть спліт, wc, хвіст, cat та grep. (не забувайте sed та awk). Linux містить багатий набір утиліт для роботи з текстовими файлами в командному рядку. Для нашого завдання сьогодні ми будемо використовувати split і wc.

    Спочатку ми подивимося на наш файл журналу ... .

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

    Ми бачимо, що розмір файлу становить 42 Мб. Це свого роду великий… але скільки ліній ми маємо справу з? Якщо ми хотіли б імпортувати це в Excel, нам потрібно було б зберегти його менше, ніж 65k рядків.

    Давайте перевіримо кількість рядків у файлі за допомогою утиліти wc, яка означає "кількість слів".

    > wc -l access.log
    146330 access.log

    Ми перевищуємо нашу межу. Потрібно розділити це на 3 сегменти. Для цього скористаємося утилітою split.

    > 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 рядків, які здавалися хорошим числом для вибору. Останній файл містить залишок. Якщо ви збираєтеся скоротити цей конкретний файл навпіл, ви б зробили це:

    > розділити -l 73165 access.log

    І це все.