gpt4 book ai didi

sed - 从 mysqldump 中按表名获取 INSERT 的行数 - awk、sed、grep

转载 作者:行者123 更新时间:2023-11-29 14:56:33 26 4
gpt4 key购买 nike

需要bash大师...

要比较多个日期的 mysqldump,我需要 sql GROUP BY、ORDER BY 功能...但在命令行上...

使用 grep/sed/awk 我需要查找所有 INSERT 语句,然后导出每个表名的行数。我真的很喜欢每个表名的字节数......

典型的线路如下所示:

INSERT INTO `admin_rule` ...

匹配INSERT,然后匹配``中的表名,按唯一表名计数

最佳答案

这个 awk 小片段怎么样:

BEGIN   { FS="`" }
/^INSERT/ { count[$2]+=1; bytes[$2]+=length($0) }
END { for(table in count) print table "," count[table] "," bytes[table]; }

编辑:此处的测试用例:

$ cat test.sql
INSERT INTO `t1` VALUES('a', 12, 'b');
INSERT INTO `t2` VALUES('test', 'whatever', 3.14);
INSERT INTO `t3` VALUES(1, 2, 3, 4);
INSERT INTO `t2` VALUES('yay', 'works', NULL);
INSERT INTO `t2` VALUES(NULL, 'something' 2.71);
INSERT INTO `t3` VALUES(5, 6, 7, 8);
INSERT INTO `t5` VALUES('beta', 'gamma');
INSERT INTO `t6` VALUES('this', 'is', 'table', 'six');
$ awk -f t.awk <test.sql
t5,1,41
t6,1,54
t1,1,38
t2,3,144
t3,2,72

关于sed - 从 mysqldump 中按表名获取 INSERT 的行数 - awk、sed、grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com