Как игнорировать запятую в CSV-файле с помощью команды cut - PullRequest
0 голосов
/ 07 января 2019

sample.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

1 Ответ

0 голосов
/ 07 января 2019

Вы не можете реально использовать 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])
...