gpt4 book ai didi

mysql - BASH - 我如何确保 csv 文件确实是 csv 文件并且其解析正确?

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:26 25 4
gpt4 key购买 nike

我有一个文件/var/tmp/file.csv:

f1;f2;f3;f4;f5;f6;f7;f8;f9;f10;f11;f12;13;14;15;16;^MB4NMA;AV;xx;28D;3;1;1;11160221;W6;3082;OTP;1510;;;0;0;^MABCD;EFG;MARION;33E;2;1;1;12160221;FR;3223;MAN;2215;;;0;0;

我需要插入mysql,但使用所有工具都无法读取或插入。

失败:

#!/bin/bash
input="/var/tmp/file.csv"
while IFS=';' read -r f1 f2 f3 f4 f5 f6 f7
do
echo "$f1 $f2 $f3 $f4 $f5 $f6 $f7"
done < "$input"

失败:

mysql> LOAD DATA LOCAL INFILE '/var/tmp/file.csv' replace
INTO TABLE file
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(f1,f2,f3)

失败:

$ mysqlimport --local -u root --ignore-lines=1 --fields-terminated-by=';' --columns='f1,f2,f3' database /var/tmp/file.csv -vvv --debug-info

最佳答案

您可以通过进程替换来修复 while 循环中的 ^M:

#!/bin/bash
input="/var/tmp/file.csv"
while IFS=';' read -r f1 f2 f3 f4 f5 f6 f7
do
echo "$f1 $f2 $f3 $f4 $f5 $f6 $f7"
done < <(tr -d "\r" < "$input")

关于mysql - BASH - 我如何确保 csv 文件确实是 csv 文件并且其解析正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35538133/

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