用shell命令分解“用逗号分隔的字符”
给定t.txt中的内容为:group by aa,bb,
cube(dd,eee),
rollup(cd)
我要形成三个文件
a.txt 、b.txt c.txta.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