AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 434462
Accepted
alhelal
alhelal
Asked: 2018-03-31 01:44:36 +0800 CST2018-03-31 01:44:36 +0800 CST 2018-03-31 01:44:36 +0800 CST

如果 csv 的分隔符出现在值中,我该怎么办?

  • 772

假设,我的 csv 文件包含

"item_name","price","description"
mobile,500$,It has many features (e.g., camera, big display, etc)  

我想使用 mysql 命令将这个 csv 数据文件加载到 mysql 数据库中

load data local infile 'file.csv' into table table
 fields terminated by ','
 lines terminated by '\n'
 (column1, column2, column3,...)  

你也可以说通过"和使用enclosed by '"'mysql的选项来包围每个值。但是封闭每个值对我来说都是开销。

description如果有一种解决方案可以读取这种类型的 csv,其中一列包含"但不是全部,我只能附上值。

csv
  • 2 2 个回答
  • 50 Views

2 个回答

  • Voted
  1. Best Answer
    Kusalananda
    2018-03-31T02:06:36+08:002018-03-31T02:06:36+08:00

    将字段分隔符从逗号更改为文件中不存在的内容。如果您可以控制创建 CSV 文件的内容,那么这应该不会太难。

    使用csvkit,如果最后一个字段被正确引用,则可以这样做:

    $ cat file.csv
    "item_name","price","description"
    mobile,500$,"It has many features (e.g., camera, big display, etc)"
    
    $ csvformat -D@ file.csv
    item_name@price@description
    mobile@500$@It has many features (e.g., camera, big display, etc)
    

    或者,没有csvformat,假设每行的前两个逗号是真正的分隔符:

    $ sed -e 's/,/@/' -e 's/,/@/' file.csv
    

    这不需要引用最后一个字段。

    将此重定向到一个新文件,然后使用

    load data local infile 'newfile.csv' into table table
     fields terminated by '@'
     lines terminated by '\n'
     (column1, column2, column3,...)  
    
    • 2
  2. Baris Demiray
    2018-03-31T02:37:03+08:002018-03-31T02:37:03+08:00

    我将其称为一个复杂的领域,我个人负责对它们进行编码,例如base64,

    $ echo "It has many features (e.g., camera, big display, etc)"  | base64
    SXQgaGFzIG1hbnkgZmVhdHVyZXMgKGUuZy4sIGNhbWVyYSwgYmlnIGRpc3BsYXksIGV0YykK
    

    但是这样做当然有利也有弊。

    • 1

相关问题

  • 在某些字符前添加逗号

  • 比较 2 个 csv 文件并仅将差异输出到变量中

  • 在没有工具的情况下在 AIX 中将 xlsx 转换为 csv [关闭]

  • 通过将前一行与当前和次要计算进行比较来转换现有的 .CSV

  • 检查文本文件是否包含所有条目并且格式正确

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve