我將用例如在14個文件中有413行。bash:將文件拆分爲14個文件(awk?split?sed?...?)
file_all = 413 lines
file_split_1 = 29 lines or 30 lines
file_split_2 = 29 lines or 30 lines
file_split_2 = 29 lines or 30 lines
:
:
file_split_14 = 36 lines or 23 lines
任何想法?
我將用例如在14個文件中有413行。bash:將文件拆分爲14個文件(awk?split?sed?...?)
file_all = 413 lines
file_split_1 = 29 lines or 30 lines
file_split_2 = 29 lines or 30 lines
file_split_2 = 29 lines or 30 lines
:
:
file_split_14 = 36 lines or 23 lines
任何想法?
的問題是無望不清楚,但也許你正在尋找簡單的東西如:
awk 'NR%30==1{of++}{print > "file_split_"of}' file_all
什麼不清楚?我有一個名爲file_all的文件,其中有413行,我將把這個文件分割成多個名爲file_split_1/file_split_2/.../file_split_14的文件。 – Daniela
你的問題仍然非常不清楚。 「你會分割文件」。好吧,很好,如此分割文件。問題是什麼?你問「我怎樣才能分割文件?」或者你問:「我怎樣才能將文件分割成14個文件,我不關心這些文件是否以每行29或30行結束,其餘的在第14個文件中?」或者你問:「我怎樣才能拆分文件,並僞隨機地在每個子文件中放置29或30行?」 –
我希望這個代碼將做的工作。只需更改文件名稱,然後它就可以工作。
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
你在哪裏失敗? –
這取決於任何問題? – SaggingRufus
'人分裂'可能是一個想法。 – ceving