ファイルを分割します。 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
不明な点は何ですか?私は413行のfile_allという名前のファイルを持っています。私はこのファイルを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
'man split'はアイデアかもしれません。 – ceving