在Linux运维中,拆分文件是非常重要的,现在和大家分享一下拆分的过程:
第一种拆分就是以文件中的字段进行拆分,本例子是文件中的第一个字段进行拆分
(1)要拆分的文件201602_1100_test_1200_0001.doc,如图:
(2)将上述文件拆分为8个小文件,执行下述命令,如图所示:
cat 201602_1100_test_1200_0001.doc | awk -F '||' '{if(($1=="11") ||($1=="12")||($1=="13")||($1=="14")) print $0}'>>1.txt
截图中的$1表示文件201602_1100_test_1200_0001.doc的第一列字段,同样$2表示第二列字段,$3表示第三列字段,
print $0表示打印当前行
AWK -F ‘||’表示该文件是以||为分隔符
(3)拆分所得的结果如图所示:
第二种拆分就是以文件中的行数进行拆分,本例子就是将文件拆分成10行为一个小文件。
(1)要拆分的文件201602_1100_test_1200_0001.doc
(2)执行命令进行拆分
endsize=`expr $startsize + 9` #分割结束的行数
加法运算用指令expr进行计算,
sed -n "${startsize},${endsize}p" 201602_1100_test_1200_0001.doc >> test"_"${num}'.REQ',执行这个命令,进行拆分
${startsize},${endsize}p,开始行号和结束行号,注意字母p必不可少,循环中文件的行数变化为1-10,11-20。。。
num1=`expr $num + 1`
num=`echo "$num1"|awk '{printf("%04d", $0)}'`
这两句是计算拆分后文件的个数,位数不足4位,左补零
(3)拆分结果所示