博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux数据库导出结果集且比对 && grep -v ---无法过滤的问题
阅读量:4047 次
发布时间:2019-05-25

本文共 2305 字,大约阅读时间需要 7 分钟。

场景:用dbeaver导出的csv中浮点数类型是默认没有双引号的,而且本人未找到添加双引号的方法,而软件导出的上场文件是每个字段都有双引号,所以在比对过程中会导致有diff会报错,虽然数据一样但是肉眼比对依然是错误的行为,那么就把非数据内容grep -v过滤掉之后比对

问题:而diff比对结果为空则没有任何显示,有不同则会输出不同内容、“1,3c1,3”、“—”,该三类内容,那么比对的需求除了不同内容以外的东西都可以过滤掉。而—则会报错以下内容:

grep: unrecognized option ‘—’
Usage: grep [OPTION]… PATTERN [FILE]…
Try `grep --help’ for more information.

解决方法: **grep -- "---" your_file**

shell脚本:

tips: 其实awk也可以直接修改源文件,awk 'NR>1 {print $1 > "/home/test.txt" }' /home/test.txt ;但是有时候可能在路径中会存在变量,比如说源文件路径在/home/test/$date/test.txt, $date=`date “+%y%m%d”` ,那么此时写法必须改为awk ‘NR>1 {print $1 > "/home/test/’$date’/test.txt}"’ /home/test/$date/text.txt 也就是给变量那个地方加上单引号

#!/bin/bash#!/bin/bash#当前时间time2=`date "+%Y%m%d"`if [ ! -f '/home/data_comparison/$time2' ];then   mkdir -p /home/data_comparison/$time2ficd /home/data_comparison/$time2touch resultcp -r /home/importFiles/$time2/1.ZJXX.CSV  /home/data_comparison/$time2/cp -r /home/importFiles/$time2/2.CCXX.CSV  /home/data_comparison/$time2/#导出资金查询和持仓查询结果集mysql -uroot -p'' -e "select cust_id,init_amt from basedb.t_fund_assets order by cust_id" > /home/data_comparison/$time2/atp_zj_$time2.csvmysql -uroot -p'' -e "SELECT b.cust_id, a.account_id, a.security_id, REPLACE(a.current_available,'.00','') FROM basedb.t_stocks a LEFT JOIN basedb.t_accounts b ON a.account_id = b.account_id ORDER BY b.cust_id, b.account_id, a.security_id" > /home/data_comparison/$time2/atp_cc_$time2.csv#上场资金文件写入到:guitai_zj_年月日.logawk -F "," 'NR>1 {print $1,$6}' /home/data_comparison/$time2/1.ZJXX.CSV  > guitai_zj_$time2.log#去掉双引号sed -i 's/"//g' /home/data_comparison/$time2/guitai_zj_$time2.log #ATP数据库资金文件写入到:atp_zi_年月日.logawk -F "," 'NR>1 {print $1,$2}' /home/data_comparison/$time2/atp_zj_$time2.csv > atp_zj_$time2.log#比对两个资金文件diff -b guitai_zj_$time2.log atp_zj_$time2.log >> /home/data_comparison/$time2/result#上场持仓文件写入到:guitai_cc_年月日.logawk -F "," 'NR>1 {gsub (" ","",$5); print $1,$2,$4,$5}' /home/data_comparison/$time2/2.CCXX.CSV | sort -k 1,3 > guitai_cc_$time2.logsed -i 's/"//g' /home/data_comparison/$time2/guitai_cc_$time2.log #ATP数据库持仓文件写入到:atp_cc_年月日.logawk -F "," 'NR>1 {print $1,$2,$3,$4}' /home/data_comparison/$time2/atp_cc_$time2.csv > atp_cc_$time2.logdiff -b atp_cc_$time2.log guitai_cc_$time2.log >> /home/data_comparison/$time2/resultcat /home/data_comparison/$time2/result

转载地址:http://zffci.baihongyu.com/

你可能感兴趣的文章
学习设计模式(3)——单例模式和类的成员函数中的静态变量的作用域
查看>>
自然计算时间复杂度杂谈
查看>>
当前主要目标和工作
查看>>
使用 Springboot 对 Kettle 进行调度开发
查看>>
一文看清HBase的使用场景
查看>>
解析zookeeper的工作流程
查看>>
搞定Java面试中的数据结构问题
查看>>
慢慢欣赏linux make uImage流程
查看>>
linux内核学习(7)脱胎换骨解压缩的内核
查看>>
以太网基础知识
查看>>
慢慢欣赏linux 内核模块引用
查看>>
kprobe学习
查看>>
慢慢欣赏linux phy驱动初始化2
查看>>
慢慢欣赏linux CPU占用率学习
查看>>
2020年终总结
查看>>
Homebrew指令集
查看>>
React Native(一):搭建开发环境、出Hello World
查看>>
React Native(二):属性、状态
查看>>
JSX使用总结
查看>>
React Native(四):布局(使用Flexbox)
查看>>