3

У меня есть файл CSV и я хочу отбросить пару столбцов. Допустим, это пример файла:

column a, column b, column c
value  a, value  b, value  c
value  a, "quoted, b", value c

А теперь допустим, что мы хотим отбросить столбец b, чтобы получить результат:

column a, column c
value  a, value  c
value  a, value c

Если бы не было строки в кавычках "quoated, b", я мог бы сделать это с помощью cut:

cut -d ',' -f 1,3

Однако есть эта строка в кавычках. Я мог бы просто загрузить файл с помощью libreoffice, но помимо того, что он менее крут и автоматизирован, мои файлы занимают несколько килобайт, а некоторые даже превышают максимальное количество строк для LibreOffice Calc.

(Примечание: мои настоящие файлы имеют более 30 столбцов, и я хотел бы выбрать около 5-10 столбцов из них. Так что это не как "выбросить последний столбец")

1 ответ1

3

Если вы можете установить python и easy_install, то вы также можете установить csvkit:https://csvkit.readthedocs.io

И теперь вы можете запустить простую команду, подобную следующей, чтобы выбрать только столбцы 1 и 3:

csvcut -c 1,3 original_file.csv > new_file.csv

Или, другой пример, чтобы удалить второй столбец:

csvcut -C 2 original_file.csv > new_file.csv

..

НОТА:

Просто предупреждение, ваш CSV выглядит недействительным. Если вы не хотите иметь пробел в ваших данных, вы НЕ ДОЛЖНЫ иметь пробел после запятой / разделителя. Символ пробела просто будет частью данных и может испортить цитируемый текст.

Как генерируются эти данные? Может ли он быть создан без лишних пробелов? Например, column a,column b,column c

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .