怎么使用shell解析数据库导出的csv文件

数据库导出的csv文件有三列信息,分为表名,字段名和索引名,需要对比从两个数据库导出的csv文件,分别输出他们的相同部分和不同部分到新的csv文件中

你这种再用shell就有点麻烦了,可以用python等脚本,它可以比较轻松的实现

需求不明确,如果有多列索引,csv是什么样子?不同部分输出到2个文件还是同一中?
下面是一个最简单的例子:

旧表定义
 baluzju $ cat oldDD.csv 
table1,col1,idx1
table1,col2,idx2                                                                                                              
table1,col3,idx3
新表定义
baluzju $ cat newDD.csv
table1,col1,idx1 
table1,col3,idx3x        
table1,col4,idx4
table2,col2,idx2
相同的行
baluzju $ diff oldDD.csv newDD.csv  -y | grep -v "|" | grep -v ">" | grep -v "<" | awk  '{print $1}' 
table1,col1,idx1 
不同的行part1
baluzju $ diff oldDD.csv newDD.csv | grep ">" | awk -F">" '{print $2}'
 table1,col3,idx3x
 table1,col4,idx4 
 table2,col2,idx2
不同的行part2
baluzju $ diff oldDD.csv newDD.csv | grep "<" | awk -F"<" '{print $2}'
 table1,col2,idx2
 table1,col3,idx3

MySQL中导入导出数据时,使用CSV格式时的命令行参数

在导出数据时使用:select ... from ... [where ...] into outfile '/tmp/data.csv' $MYSQL_CSV_FORMAT;

在导入数据时使用:load data infile '/tmp/data.csv' into table ... $MYSQL_CSV_FORMAT;

CSV标准文档:RFC 4180

MYSQL_CSV_FORMAT="fields terminated by ',' optionally enclosed by '\"' escaped by '\"' lines terminated by '\r\n'"