【问题标题】:How to Ignore a comma in CSV file using cut command如何使用 cut 命令忽略 CSV 文件中的逗号
【发布时间】:2019-01-07 06:37:04
【问题描述】:

sample.csv:-

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

第三列的值中有逗号。

我正在使用以下命令来提取最后 3 列值。但是第 5 列没有被提取。我需要在 cut 命令中进行哪些更改才能获得预期的输出?

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

预期输出:-

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

实际结果:-

"Languages(Java,Rails)",1234

【问题讨论】:

  • 您的 CSV 样本格式不正确(或者更确切地说,它格式正确,但实际输出是您对这个输入的期望)。如果您希望第三个字段包含 Languages(Java,Rails),则不应在逗号周围加上引号。
  • 查看 csvkit 而不是 cut。

标签: linux csv parsing command-line cut


【解决方案1】:

如果分隔符也出现在值内部,则不能真正使用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])

【讨论】:

猜你喜欢
  • 2017-09-14
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
相关资源
最近更新 更多