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

Домашняя папка MSYS2: показать ~
Можно ли отображать текстовый файл в нескольких вертикальных областях?
Как переименовать несколько файлов в bash (не по шаблону, а с запросом на каждое новое имя)?
Как получить pid запущенного процесса с помощью одной команды, которая анализирует выходные данные ps?
Как перезагрузить терминал в Ubuntu?
номер команды bash (#) эквивалентен в zsh
push / pop текущий каталог?
Подключение к сети WiFi с помощью Mac-терминала
"- bash: ls: команда не найдена " ошибка в терминале на Mac. Как это исправить?
Создать ярлык для папки с пробелами и дефисами
Перехват ошибки команды bash в переменной
Сочетания клавиш Bash, использующие Alt, не работают на Mac
Как использовать терминал для входа на другой компьютер mac?
Как проверить, доступно ли подключение к Интернету через терминал
Попытка распаковать файл внутри подкаталога получение ошибки: внимание: имя файла не совпадает

Ошибки синтаксического анализа из-за специальных символов в записях 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