linux split 及优化


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

 
原文地址:https://www.cnblogs.com/FlyAway2013/p/5546775.html