linux - 如何使用 cut 命令忽略 CSV 文件中的逗号

标签 linux csv parsing command-line cut

样本.csv:-

sample,test,"Languages(Java","Rails)",1234,This-is-sample

第 3 列的值内有逗号。

我正在使用以下命令提取最后 3 列值。但第 5 列未提取。我需要在 cut 命令中更改什么以获得预期的输出?

cut -d "," -f 3-5 sample.csv

预期输出:-

"Languages(Java","Rails)",1234,This-is-sample

实际结果:-

"Languages(Java,Rails)",1234

最佳答案

如果定界符也出现在值中,则不能真正使用 cut。在 CSV 中,字段周围的双引号允许它包含逗号;您应该使用理解这一点的工具。

#!/usr/bin/env python3

import csv
import sys

writer=csv.writer(sys.stdout)
for row in csv.reader(open("sample.csv")): 
    writer.writerow(row[2:5])

关于linux - 如何使用 cut 命令忽略 CSV 文件中的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54069529/

相关文章:

python - 如何创建 .desktop 文件以在 Linux 上启动 python 脚本?

python - 有没有办法找到Python中存在*.csv?

用于为工资期创建 CSV 的 Python 脚本

java - 错误 : java. lang.NumberFormatException

php - 无法在 centos 上使用 yum 安装 php-gd 和 freetype

linux - shell ftp 期望智能地从本地复制文件到ftp服务器

java - 我应该在 HTTPClass 中的哪里实现这个 Jackson Root Element 代码?

sql - 在 Oracle (SQL) 中读取嵌套的 XML

python - linux/python 中的异常渗透

linux - 从 shell 将 HTML 表转换为 CSV 文件