Chinaunix
标题:
请教一下文本处理,谢谢!
[打印本页]
作者:
will009
时间:
2016-03-29 10:30
标题:
请教一下文本处理,谢谢!
现在有个大约11G的文件,如下面格式:
insert into table values (a),(b),(c),(d),......(z);
想改成下面格式:
insert into table[字段名] values (a);
insert into table[字段名] values (b);
insert into table[字段名] values (c);
insert into table[字段名] values (d);
...
insert into table[字段名] values (z);
请教一下大师,谢谢了!
作者:
WilliBhamlll
时间:
2016-03-29 11:17
本帖最后由 WilliBhamlll 于 2016-03-29 11:28 编辑
echo 'insert into table values (a),(b),(c),(d),(e),(f);'|sed -r 's/table/&[字段名]/;:1;s/([^(,]*)*([^,]*),(.*)(;)/\1\2\4\n\1\3\4/;t1'
insert into table[字段名] values (a);
insert into table[字段名] values (b);
insert into table[字段名] values (c);
insert into table[字段名] values (d);
insert into table[字段名] values (e);
insert into table[字段名] values (f);
复制代码
11G,够呛。。
作者:
leijskg
时间:
2016-03-29 11:22
提示:
作者被禁止或删除 内容自动屏蔽
作者:
我是一隻羊
时间:
2016-03-29 11:59
sed 's/table/&[字段名]/;s/,/;\ninsert into table[字段名] values /g' file
复制代码
作者:
moperyblue
时间:
2016-03-29 12:20
本帖最后由 moperyblue 于 2016-03-29 13:55 编辑
sed -r 's/e/&[字段名]/2;:a;s/(.*values )([^,]*),/\1\2;\n\1/M;ta'
sed -n 's/e/&[字段名]/2;h;s/\(.*values \).*/\1/;x;s/.*values //;:a;G;s/\(.*\)\n\(.*\)/\2\1/;/,/!{p;b};s/,/;\n/;P;s/.*\n//;ta'
复制代码
作者:
liion631818
时间:
2016-03-29 12:37
WilliBhamlll 发表于 2016-03-29 11:17
11G,够呛。。
m 好东西
作者:
jason680
时间:
2016-03-29 13:14
回复
1#
will009
$ awk '/insert into table values/{$3=$3"[字段名]";sub(/;$/,"");t=split($5,a,",");for(n=1;n<=t;++n)print $1,$2,$3,$4,a[n]";"}' FILE
insert into table[字段名] values (a);
insert into table[字段名] values (b);
insert into table[字段名] values (c);
...
insert into table[字段名] values (z);
作者:
toddhai
时间:
2016-05-05 16:06
本帖最后由 toddhai 于 2016-05-05 16:09 编辑
awk -F'[ ,;]' '{for(i=5;i<NF;i++)print "insert into table[字段名] values "$i";"}' urfile
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2