Розділити текстовий файл наполовину (або будь-який відсоток) на 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
І це все.