2017-05-04 52 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