split 虽然不好用, 但是还是可以用一下的!
有两个方式拆分, 按固定的行数, 按固定的大小。 默认是 1000 行, 后缀长度为2, 后缀长度N是说, 分片从N个字母/数字 的最小值 到 其最大值
#split --h
用法:split [选项]... [输入 [前缀]]
将输入内容拆分为固定大小的分片并输出到"前缀aa"、"前缀ab",...;
默认以 1000 行为拆分单位,默认前缀为"x"。如果不指定文件,或
者文件为"-",则从标准输入读取数据。
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --suffix-length=N 指定后缀长度为N (默认为2)
-b, --bytes=大小 指定每个输出文件的字节大小
-C, --line-bytes=大小 指定每个输出文件里最大行字节大小
-d, --numeric-suffixes 使用数字后缀代替字母后缀
-l, --lines=数值 指定每个输出文件有多少行
--verbose 在每个输出文件打开前输出文件特征
--help 显示此帮助信息并退出
--version 显示版本信息并退出
SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:
KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。
来测试下
split -l10000 catalina.out
#ls
catalina.out xae xaj xao xat xay xbd xbi xbn xbs xbx xcc xch xcm xcr xcw xdb xdg xdl xdq xdv
xaa xaf xak xap xau xaz xbe xbj xbo xbt xby xcd xci xcn xcs xcx xdc xdh xdm xdr xdw
xab xag xal xaq xav xba xbf xbk xbp xbu xbz xce xcj xco xct xcy xdd xdi xdn xds
xac xah xam xar xaw xbb xbg xbl xbq xbv xca xcf xck xcp xcu xcz xde xdj xdo xdt
xad xai xan xas xax xbc xbh xbm xbr xbw xcb xcg xcl xcq xcv xda xdf xdk xdp xdu
rm /tt/x*
#split -l1000 catalina.out
split: 已排除输出文件后缀 —— 表明只去掉了满足后缀要求的文件, 被过滤了! 默认后缀是长度2,即只显示了 aa-zz 共 26*26个文件
#ls catalina.out xbc xcf xdi xel xfo xgr xhu xix xka xld xmg xnj xom xpp xqs xrv xsy xub xve xwh xxk xyn xzq xaa xbd xcg xdj xem xfp xgs xhv xiy xkb xle xmh xnk xon xpq xqt xrw xsz xuc xvf xwi xxl xyo xzr xab xbe xch xdk xen xfq xgt xhw xiz xkc xlf xmi xnl xoo xpr xqu xrx xta xud xvg xwj xxm xyp xzs xac xbf xci xdl xeo xfr xgu xhx xja xkd xlg xmj xnm xop xps xqv xry xtb xue xvh xwk xxn xyq xzt xad xbg xcj xdm xep xfs xgv xhy xjb xke xlh xmk xnn xoq xpt xqw xrz xtc xuf xvi xwl xxo xyr xzu xae xbh xck xdn xeq xft xgw xhz xjc xkf xli xml xno xor xpu xqx xsa xtd xug xvj xwm xxp xys xzv xaf xbi xcl xdo xer xfu xgx xia xjd xkg xlj xmm xnp xos xpv xqy xsb xte xuh xvk xwn xxq xyt xzw xag xbj xcm xdp xes xfv xgy xib xje xkh xlk xmn xnq xot xpw xqz xsc xtf xui xvl xwo xxr xyu xzx xah xbk xcn xdq xet xfw xgz xic xjf xki xll xmo xnr xou xpx xra xsd xtg xuj xvm xwp xxs xyv xzy xai xbl xco xdr xeu xfx xha xid xjg xkj xlm xmp xns xov xpy xrb xse xth xuk xvn xwq xxt xyw xzz xaj xbm xcp xds xev xfy xhb xie xjh xkk xln xmq xnt xow xpz xrc xsf xti xul xvo xwr xxu xyx xak xbn xcq xdt xew xfz xhc xif xji xkl xlo xmr xnu xox xqa xrd xsg xtj xum xvp xws xxv xyy xal xbo xcr xdu xex xga xhd xig xjj xkm xlp xms xnv xoy xqb xre xsh xtk xun xvq xwt xxw xyz xam xbp xcs xdv xey xgb xhe xih xjk xkn xlq xmt xnw xoz xqc xrf xsi xtl xuo xvr xwu xxx xza xan xbq xct xdw xez xgc xhf xii xjl xko xlr xmu xnx xpa xqd xrg xsj xtm xup xvs xwv xxy xzb xao xbr xcu xdx xfa xgd xhg xij xjm xkp xls xmv xny xpb xqe xrh xsk xtn xuq xvt xww xxz xzc xap xbs xcv xdy xfb xge xhh xik xjn xkq xlt xmw xnz xpc xqf xri xsl xto xur xvu xwx xya xzd xaq xbt xcw xdz xfc xgf xhi xil xjo xkr xlu xmx xoa xpd xqg xrj xsm xtp xus xvv xwy xyb xze xar xbu xcx xea xfd xgg xhj xim xjp xks xlv xmy xob xpe xqh xrk xsn xtq xut xvw xwz xyc xzf xas xbv xcy xeb xfe xgh xhk xin xjq xkt xlw xmz xoc xpf xqi xrl xso xtr xuu xvx xxa xyd xzg xat xbw xcz xec xff xgi xhl xio xjr xku xlx xna xod xpg xqj xrm xsp xts xuv xvy xxb xye xzh xau xbx xda xed xfg xgj xhm xip xjs xkv xly xnb xoe xph xqk xrn xsq xtt xuw xvz xxc xyf xzi xav xby xdb xee xfh xgk xhn xiq xjt xkw xlz xnc xof xpi xql xro xsr xtu xux xwa xxd xyg xzj xaw xbz xdc xef xfi xgl xho xir xju xkx xma xnd xog xpj xqm xrp xss xtv xuy xwb xxe xyh xzk xax xca xdd xeg xfj xgm xhp xis xjv xky xmb xne xoh xpk xqn xrq xst xtw xuz xwc xxf xyi xzl xay xcb xde xeh xfk xgn xhq xit xjw xkz xmc xnf xoi xpl xqo xrr xsu xtx xva xwd xxg xyj xzm xaz xcc xdf xei xfl xgo xhr xiu xjx xla xmd xng xoj xpm xqp xrs xsv xty xvb xwe xxh xyk xzn xba xcd xdg xej xfm xgp xhs xiv xjy xlb xme xnh xok xpn xqq xrt xsw xtz xvc xwf xxi xyl xzo xbb xce xdh xek xfn xgq xht xiw xjz xlc xmf xni xol xpo xqr xru xsx xua xvd xwg xxj xym xzp
去掉已排除输出文件后缀,需要改变其后缀长度,
使用 split -l1000 -a4 catalina.out 即可
用数字显示:
rm /py/log/x*
#split -l100000 -d catalina.out
#ls
catalina.out x00 x01 x02 x03 x04 x05 x06 x07 x08 x09 x10
缺点是 可以设置前缀, 却不能设置后缀, ———— 这不是坑爹吗?? 为什么会有这么低级的限制??
天啊!! 搜遍了 各论坛/ stackoverflow 都有没有答案!我擦, 大家都不要这个??
没法,自己写一个吧!
vi batchAddSuffix.sh echo prefix cant be empty! fi echo prefix cant be empty! prefix=$1 suffix=$2 if [ -z $1 ]; then echo prefix cant be empty! exit -1 fi if [ -z $2 ]; then echo suffix cant be empty! exit -1 fi arr=`ls ${prefix}*| cut -d" " -f1 ` for ff in $arr do echo moving $ff to $ff${suffix} mv $ff $ff${suffix} done