やりたいこと
ファイルをsplitコマンドで指定した数に分割したところ、行の途中で分割されてしまった。
% split -n 2 split.txt split_
分割後のファイルは後続処理の入力データとなるが、このままでは使用できない。
そこで、ファイルを行の途中で分割せずに指定した数に分割したい。
方法
splitコマンドには分割数を指定するnオプションがあるが、分割ルールについても設定できる。
サンブルには以下を使用する。
% cat split.txt 1234567890 abcdefghij あいうえお
-n l/{数字}
nオプションにl/{数字}を指定した場合、行の途中で分割させずに指定した行数に分割できる。
% echo -e "0123456789\nabcdefghij\nあいうえお" > split.txt % split -n l/2 split.txt split_ % tail split* > split_aa <== 0123456789 abcdefghij ==> split_ab <== あいうえお ==> split.txt <== 0123456789 abcdefghij あいうえお
-n {数字}
l/を付けない場合、行の途中で分割される。
% echo -e "0123456789\nabcdefghij\nあいうえお" > split.txt % split -n 2 split.txt split_ % tail split* ==> split_aa <== 0123456789 abcdefgh ==> split_ab <== ij あいうえお ==> split.txt <== 0123456789 abcdefghij あいうえお