Похожие вопросы

Отправить env в целевой файл makefile
Удаляет ли rsync файлы, папки в месте назначения по умолчанию?
Как объединить строку, содержимое файла и строку в сценарии bash?
Как использовать xargs и sed для передачи результатов в массив?
tar: не удается создать символическую ссылку: файл существует
Скрипт оболочки для проверки файлов и их перемещения в другой каталог
не удается увеличить переменную внутри цикла в сценарии bash
Добавление пользовательских строк в файл с помощью shell-скрипт
Bash-хранение значения ключа в переменных, объявленных в ассоциативном массиве
Как остановить в Git-Bash, то ждать окончания?
Debian 9: bash: ls, cat, команда не найдена после неправильного изменения пути
Проблемы с Bash 4.2.45 на Ubuntu
перенаправление вывода nohup в другой файл
Нет необходимости в экспорте при выполнении функций в subshell
IPTables - разрешить (принять) определенные IP-адреса в заблокированной подсети

Ошибки синтаксического анализа из-за специальных символов в записях DNS txt

у меня проблемы с разбором записей txt dns, полученных скриптом, который я написал. Скрипт берет записи a, NS и txt и записывает их в a .CSV-файл. Я использую точку с запятой для разделения записей и " в качестве разделителя текста.

так как txt записи содержат специальные символы типа ", это приводит к ошибкам парсинга, когда я пытаюсь открыть .CSV-файл, например, в электронных таблицах.

IN TXT "verification=12345678901234567890"

если есть несколько записей на запись, это приводит к " происходят в запись и например,"" в конце записи. Ведущий к cdn.net."verification=12345678901234567890"";"...

есть ли достойный способ предотвратить такие проблемы внутри скрипта? Использование нескольких разделителей текста кажется одним решением, но также похоже на уродливый Хак.

5
задан Katja Eichelberger
источник

1 ответов

CSV файлы - это просто текстовые файлы, отформатированные с разделителем, который вы можете выбрать. Таким образом, в основном разделитель-это не то, что вы заставляете в документе, который вы пишете, но это человек, который хочет открыть файл, который может выбрать разделитель. " Это просто один по умолчанию, но может быть изменен.

В настоящее время любое приличное программное обеспечение, которое обрабатывает файлы CSV позволяет пользователям выбирать разделитель. Я бы предложил выбрать персонажа, которого вы уверены, что не будете использовать в качестве разделителя документа (например: $,#,...) и скажите людям, которые должны открыть документ, что разделитель это персонаж вместо ".

другой способ - открыть файл самостоятельно с помощью выбранного разделителя и сохранить его в другом формате (.xls, например) и отправить этот последний файл людям, которые должны прочитать документ. Таким образом, им не нужно будет выбирать разделители открытие.

1
отвечен nKn 2017-11-08 09:49:28
источник

Другие вопросы bash bash-scripting csv parsing shell-script