背景
使用sqlite3的命令实现数据去重,与无效数据删除等操作。所有操作均封装在shell script中。
创建数据库
#!/bin/bash
sqlite3 UserEmail.db "CREATE TABLE TABLE_EMAIL ( ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,EMAIL CAHR(30) NOT NULL )";
显示TABLE_EMAIL数据表中的内容
#!/bin/bash
sqlite3 UserEmail.db ".headers on" ".mode columns" "select * from TABLE_EMAIL";
假设原始数据如下
显然有重复的数据,现在来删除重复数据
删除表中重复数据
#!/bin/bash
sqlite3 UserEmail.db "DELETE FROM TABLE_EMAIL WHERE rowid NOT IN(SELECT MAX(rowid) rowid FROM TABLE_EMAIL GROUP BY EMAIL)";
去重后,表数据如下
- 可以发现重复的数据已经只剩下一条了,接下来做email地址有效性检测。
通配符
假设以字符test@H_403_54@开头的Email地址不合法,现用通配符删除。
#!/bin/bash
sqlite3 UserEmail.db "DELETE FROM TABLE_EMAIL WHERE EMAIL LIKE 'test%'";
- 删除非法email地址后的email表数据如下
时间: 2017年7月1日00:23:35