2017-05-04 65 views

回答

0

的问题是无望不清楚,但也许你正在寻找简单的东西如:

awk 'NR%30==1{of++}{print > "file_split_"of}' file_all 
+0

什么不清楚?我有一个名为file_all的文件,其中有413行,我将把这个文件分割成多个名为file_split_1/file_split_2/.../file_split_14的文件。 – Daniela

+0

你的问题仍然非常不清楚。 “你会分割文件”。好吧,很好,如此分割文件。问题是什么?你问“我怎样才能分割文件?”或者你问:“我怎样才能将文件分割成14个文件,我不关心这些文件是否以每行29或30行结束,其余的在第14个文件中?”或者你问:“我怎样才能拆分文件,并伪随机地在每个子文件中放置29或30行?” –

1

我希望这个代码将做的工作。只需更改文件名称,然后它就可以工作。

fileNum=14 
var=13 
totalLines=$(cat file.txt|wc -l) 
eachLine=$(expr $totalLines/$fileNum) 
finalLine=$(expr $var \* $eachLine) 
finalLine=$(expr $totalLines - $finalLine) 
tmp=$totalLines 
for i in {1..13} 
do 
fileName=$(echo file$i) 
cat file.txt | tail -$tmp | head -$eachLine > $fileName 
tmp=$(expr $tmp - $eachLine) 
done 
cat exam2014.txt | tail -$finalLine | head -$finalLine > file14