编辑/拆分/保存文本文件中的数据

时间:2011-10-10 08:34:12

标签: perl unix matlab octave

我有一个名为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来做这件事,但我认为这对于在一个包含10万行的文本文件上运行for循环会过度消耗和资源密集。 grep或perl是正确使用的东西,还是应该使用其他类型的程序?如果是这样我怎么能用呢?

我正在使用Ubuntu 32 10.04 6 gig ram 感谢

1 个答案:

答案 0 :(得分:4)

正如你提到的那样,如果你只是想将文本文件拆分成多个文件,那么Matlab / Octave似乎是一种矫枉过正。

有一千种方法可以做到这一点(尤其是在unix系统上),所以请选择你的。

其中一种可能性是使用split,如下所示:

split --lines=3 file prefix