редактирование / разбиение / сохранение данных в текстовом файле - PullRequest
2 голосов
/ 10 октября 2011

У меня есть текстовый файл с именем playlist.pls, который создается динамически, и в текстовом файле у меня есть тысячи строк, которые выглядят так:

File000001=/home/ubu32sc/Documents/octave/pre/wavefn_0001.wav 
File000002=/home/ubu32sc/Documents/octave/pre/wavefn_0002.wav 
File000003=/home/ubu32sc/Documents/octave/pre/wavefn_0003.wav 
File000004=/home/ubu32sc/Documents/octave/pre/wavefn_0004.wav 
File000005=/home/ubu32sc/Documents/octave/pre/wavefn_0005.wav 
File000006=/home/ubu32sc/Documents/octave/pre/wavefn_0006.wav 
File000007=/home/ubu32sc/Documents/octave/pre/wavefn_0007.wav 
File000008=/home/ubu32sc/Documents/octave/pre/wavefn_0008.wav 
File000009=/home/ubu32sc/Documents/octave/pre/wavefn_0009.wav 
File000010=/home/ubu32sc/Documents/octave/pre/wavefn_0010.wav etc...

Мне нужно разбить данные в текстовом файле на несколько разных файлов. пример:

The play1.pls file would contain:
File000001=/home/ubu32sc/Documents/octave/pre/wavefn_0001.wav 
File000002=/home/ubu32sc/Documents/octave/pre/wavefn_0002.wav 
File000003=/home/ubu32sc/Documents/octave/pre/wavefn_0003.wav 

The play2.pls file would contain:
File000004=/home/ubu32sc/Documents/octave/pre/wavefn_0004.wav 
File000005=/home/ubu32sc/Documents/octave/pre/wavefn_0005.wav 
File000006=/home/ubu32sc/Documents/octave/pre/wavefn_0006.wav 

The play3.pls file would contain:
File000007=/home/ubu32sc/Documents/octave/pre/wavefn_0007.wav 
File000008=/home/ubu32sc/Documents/octave/pre/wavefn_0008.wav 
File000009=/home/ubu32sc/Documents/octave/pre/wavefn_0009.wav 

The play4.pls file would contain:
File000010=/home/ubu32sc/Documents/octave/pre/wavefn_0010.wav etc...

Каков наилучший способ сделать это? Я думал об использовании octave / matlab для этого, но я думаю, что это было бы излишним и ресурсоемким для запуска цикла for для текстового файла с десятками тысяч строк. Является ли grep или perl подходящей для использования программой или я должен использовать программу другого типа? и если да, то как я могу это сделать?

Я использую Ubuntu 32 10.04 6 ГБ ОЗУ Спасибо

1 Ответ

4 голосов
/ 10 октября 2011

Как вы упомянули, Matlab / Octave кажется излишним, если вы просто хотите разделить текстовый файл на несколько файлов.

Есть тысячи способов сделать это (особенно в Unix-системе)поэтому просто выберите свой.

Одна из возможностей - использовать split, который выглядит так:

split --lines=3 file prefix
...