Поиск…


Вступление

Иногда полезно разбить файл на несколько отдельных файлов. Если у вас большие файлы, неплохо было бы разбить его на мелкие куски

Разделить файл

Запуск команды split без каких-либо параметров разбивает файл на 1 или более отдельных файлов, содержащих до 1000 строк каждый.

split file

Это будет создавать файлы с именем xaa , xab , xac и т.д., каждый из которых содержит до 1000 строк. Как вы можете видеть, все они имеют префикс с буквой x по умолчанию. Если исходный файл был меньше 1000 строк, будет создан только один такой файл.

Чтобы изменить префикс, добавьте нужный префикс в конец командной строки

split file customprefix

Теперь будут созданы файлы с именем customprefixaa , customprefixab , customprefixac и т. Д.

Чтобы указать количество строк для вывода на файл, используйте параметр -l . Ниже будет разбит файл на 5000 строк

split -l5000 file

ИЛИ ЖЕ

split --lines=5000 file

Кроме того, вы можете указать максимальное количество байтов вместо строк. Это делается с использованием опций -b или --bytes . Например, чтобы разрешить максимум 1 МБ

split --bytes=1MB file

Мы можем использовать sed с параметром w, чтобы разделить файл на несколько файлов. Файлы можно разделить, указав адрес или шаблон строки.

Предположим, что у нас есть этот исходный файл, который мы хотели бы разделить:

cat -n sourcefile

1 На Нин Нанг Нонг
2 Куда идут коровы Бонг!
3 и обезьяны все говорят BOO!
4 Существует Nong Nang Ning
5 Где деревья идут в Пинг!
6 И чайный горшок jibber jabber joo.
7 На Нонг Нин Нанг

Команда для разделения файла по номеру строки:

sed '1,3w f1
> 4,7w f2' sourcefile

Это записывает строки1 в строку3 в файл f1 и line4 в строку7 в файл f2 из исходного файла.

cat -n f1

1 На Нин Нанг Нонг
2 Куда идут коровы Бонг!
3 и обезьяны все говорят BOO!

cat -n f2 

1 Существует Nong Nang Ning
2 Где идут деревья Пинг!
3 И чайный горшок jibber jabber joo.
4 На Нонг Нин Нанг

Команда для разделения файла по контексту / шаблону:

sed '/Ning/w file1
> /Ping/w file2' sourcefile

Это разделяет исходный файл на file1 и file2. file1 содержит все строки, соответствующие Ning, file2 содержит строки, соответствующие Ping.

cat file1

О Нин Нанг Нонг
Там Нонг Нанг Нин
На Нонг Нин Нанг

cat file2

Где деревья идут в Пинг!



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow