日期:2014-05-16  浏览次数:20778 次

用shell命令分解“用逗号分隔的字符”
给定t.txt中的内容为:
group by aa,bb,
cube(dd,eee),
rollup(cd)


我要形成三个文件
a.txt 、b.txt c.txt


a.txt的内容为:
aa
bb

b.txt的 内容为:
dd
eee

c.txt的 内容为:
cd


如果t.txt中的内容变了的话,a.txt 、b.txt c.txt的内容也变,
如果t.txt中的内容是

group by aa,bb,dr,
cube(dd,er),
rollup(cd,de,tr)



a.txt的内容为:
aa
bb
dr

b.txt的 内容为:
dd
er

c.txt的 内容为:
cd
de
tr


关键字group by\cube\rollup的不会变(位子也不变,括号也不变),变的只是关键字后面的内容
怎么用shell实现?


------解决方案--------------------
echo $LINE | cut -d ',' -f *(列号)
------解决方案--------------------
Perl code
awk -F, '{sub("group by ","");sub("cube\\(","");sub("rollup\\(","");sub(")","");if(NR==1) f="a.txt";else if(NR==2)f="b.txt";else f="c.txt";for(i=1;i<=NF;i++)print $i>>f}' t.txt