Вопрос или проблема
Учитывая сырой файл csv:
$ cat foo.csv
foo, bar
buzz, "quoted string"
Если я открываю этот файл в Libre Office с указанными настройками, я могу красиво его просмотреть. Тем не менее, если я снова выберу весь документ и скопирую его, в буфере обмена содержится:
foo bar
buzz quoted string
Я ожидал, что буфер обмена восстановит сырой csv снова.
Пример весьма искусственный, однако суть в том, что я хочу экспортировать лишь часть из большего csv, не выбирая элементы вручную с помощью sed
или используя
head -n 1 > example.csv
cat large.csv | grep SOME_CODE >> example.csv // иногда фильтрация не так проста
Мне нравится использовать LibreOffice Calc, так как он предлагает хорошую функцию фильтрации через Данные > Автофильтр
, что упрощает поиск нужных строк. Однако извлечение этого выбора не так просто.
Я буду использовать меньший файл для настройки модульного теста, и поэтому не хочу изменять формат файла csv, даже если это, скорее всего, не сильно повлияет на работу правильного парсера csv.
Поскольку цель модульного теста заключается в том, чтобы убедиться, что он правильно разбирает фактический формат, и я не хочу проверять на основе понимания файла CSV в LibreOffice.
Как я могу сохранить сырой формат при копировании из файла CSV в LibreOffice Calc?
Вместо Автофильтра используйте Данные -> Дополнительные фильтры -> Стандартный фильтр и скопируйте результаты на Лист2.
Затем на Листе2 перейдите в Файл -> Сохранить как с типом Text CSV
, чтобы создать следующий файл.
foo,bar
Это слегка отличается по формату от оригинала. Если он должен быть точно таким же, то LO Calc не является подходящим инструментом. Используйте sed
или аналогичное.
Вставьте его в лист, убедитесь, что все выбрано, затем перейдите в Данные > Текст по столбцам. Это откроет тот же диалог, который вы видите при импорте .csv файла.
(Я на Libreoffice 4.3.2.2, кстати)
Ответ или решение
Чтобы извлечь данные в формате "сырых" CSV из форматированного CSV файла с помощью LibreOffice Calc, вам необходимо следовать определенным шагам, поскольку стандартная операция копирования и вставки может не сохранить исходный формат. Рассмотрим этот процесс.
Шаг 1: Открытие файла CSV в LibreOffice Calc
Первым делом откройте ваш CSV файл в LibreOffice Calc. Используя настройки импорта, проверьте, чтобы параметры разделителя и ограничителя текста соответствовали вашему формату данных (в вашем случае это запятая как разделитель и кавычки как ограничитель текста).
Шаг 2: Использование фильтров для отбора данных
Чтобы отобрать нужные вам строки, воспользуйтесь функцией фильтров, что существенно облегчит процесс:
- Перейдите в меню Данные.
- Выберите Другие фильтры и затем Стандартный фильтр.
- Задайте необходимые условия для фильтрации данных, которые вы хотите скопировать. Это может быть определенное значение в столбцах или диапазарактеризуемое другими параметрами.
- После того как данные будут отфильтрованы, можно удобно скопировать их для последующей работы.
Шаг 3: Копирование отфильтрованных данных
После выполнения фильтрации вы получите только те строки, которые соответствуют вашим условиям. Выделите все необходимые данные и нажмите Ctrl + C или выберите Копировать из контекстного меню.
Шаг 4: Вставка на новый лист
Теперь создайте новый лист (либо лист 2 или новый документ):
- Откройте новый лист;
- Вставьте данные с помощью Ctrl + V или параметра Вставить.
Шаг 5: Экспорт в формате CSV
Для сохранения данных как "сырых" CSV:
- В новом листе перейдите в меню Файл.
- Выберите Сохранить как.
- В окне сохранения выберите тип файла Текстовый CSV.
- Убедитесь, что параметры разделителей установлены в соответствии с вашими данными, и нажмите Сохранить.
Результат
Таким образом, вы получите новый файл CSV, который сохранит формат данных, близкий к исходному. Однако обратите внимание, что если вам требуется строгое соответствие формата исходного файла, лучше воспользоваться утилитами командной строки, такими как sed
или awk
, которые обеспечивают большее управление и точность при редактировании текстовых файлов.
Заключение
Использование LibreOffice Calc для работы с CSV файлами может быть удобным и визуально наглядным. Каждый шаг этого процесса поможет вам эффективно отобрать и сохранить данные, которые вам нужны, но в зависимости от задач, возможно, стоит рассмотреть альтернативные инструменты для более точной обработки формата файла.