У меня есть файл CSV, но в отличие от связанных вопросов, в нем есть несколько столбцов, содержащих строки в двойных кавычках с запятыми, например
foo,bar,baz,quux
11,"first line, second column",13.0,6
210,"second column of second line",23.1,5
(конечно, он длиннее ичисло запятых в кавычках не обязательно равно единице или 0, и текст не является предсказуемым.) Текст также может иметь (экранированные) двойные кавычки в двойных кавычках или не иметь двойных кавычек вообще для поля, обычно цитируемого в кавычках.Единственное допущение, которое мы можем сделать, это то, что нет заключенных в кавычки новых строк, поэтому мы можем разделить строки тривиально, используя \n
.
Теперь я хотел бы извлечь конкретный столбец (скажем, третий) -скажем, для печати на стандартном выводе, одно значение в строке.Я не могу просто использовать запятые в качестве разделителей полей (и, например, использовать cut
);скорее, мне нужно что-то более изощренное.Что бы это могло быть?
Примечание: я использую bash в системе Linux.