当前位置: 技术问答>linux和unix
用shell命令分解“用逗号分隔的字符”
来源: 互联网 发布时间:2017-02-13
本文导语: 给定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...
给定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 bycuberollup的不会变(位子也不变,括号也不变),变的只是关键字后面的内容
怎么用shell实现?
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 bycuberollup的不会变(位子也不变,括号也不变),变的只是关键字后面的内容
怎么用shell实现?
|
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>f}' t.txt
|
echo $LINE | cut -d ',' -f *(列号)