欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

linux超大csv文件首行大小写转换

时间:2023-07-16
场景:

一些源数据作为csv文件存放在服务器上,因之前使用的数据库是oracle和postgresql,大小写不敏感,因此csv文件的首行存放的是大写的字段名。现在数据库扩展使用大小写敏感的clickhouse,因此在入库前需要对csv文件的首行进行大小写转换。

思路:

文件过大,文件在windows下打不开。所以需要用命令来修改:

1、展示csv文件首行并转换为小写

2、将小写的行插入在原csv文件的第二行

3、删除大写的首行

过程:

演示用的test0.csv首行有三个字段,分别为AAA、BB_B、C(这是我随便起的)。将这个文件放在服务器上,我的存放路径为/root/myData/test0.csv

1、展示csv文件首行并转换为小写

head -1 test0.csv | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'

 2、将第一步回显的小写的行插入在原csv文件的第二行(用java来说就是把aaa,bb_b,c作为入参传入sed方法中)

sed -i '1 a aaa,bb_b,c' test0.csv

 这里可以看出,小写的表头已经插入到第二行了

 3、删除大写的首行

sed -i '1d' test0.csv

完成~ 

总结: 

分三个命令来实现linux 超大csv文件首行大小写转换,我这里使用的主要是sed命令,如果有更简洁的方法欢迎讨论~

 

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。