我将用例如在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