Как добавить правильный интервал в файл PSV?

У меня есть psv-файл для некоторых настроек моей программы, и он выглядит очень плохо. Когда я сохраняю эту конфигурацию из kdb, она удаляет все пробелы и выглядит так:

column1|column2|column3
somevalue1|somevalue2|somevalue3
somevalue4|somevalue5|somevalue6

и я хочу, чтобы это выглядело так, когда я открываю его с помощью текстового редактора, такого как блокнот или визуальный код студии

column1    |column2    |column3
somevalue1 |somevalue2 |somevalue3
somevalue4 |somevalue5 |somevalue6

В этом psv-файле 20000 строк, поэтому, пожалуйста, не говорите мне, что я должен делать это вручную.

Причина, по которой мне нужно сделать этот интервал, заключается в том, что иногда моим коллегам нужно открыть его, чтобы изменить только одну вещь, и с этим интервалом он намного удобнее для чтения.

Я работаю в Linux и знаю kdb, python и R, так что что-нибудь на этих языках может мне помочь?

Альтернативой может быть использование расширения в вашем редакторе, например. для VS Code marketplace.visualstudio.com/…, который добавляет кнопку «выравнивания» в нижнюю панель при редактировании файлов с разделителями

Jonathon McMurray 29.07.2019 09:35
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
116
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это довольно грубо, но эта функция q возьмет существующий файл psv и дополнит его:

pad:{m:max each count@''a:flip"|"vs/:read0 x;x 0:"|"sv/:flip m$a}

Он работает, беря максимальную длину строки каждого столбца и дополняя остальные значения до той же ширины, используя $. Затем столбцы снова сшиваются и сохраняются.

Взяв этот пример содержимого файла:

column1|column2|column3
somevalue1|somevalue2|somevalue3
somevalue4|somevalue5|somevalue6
somevalue7|somevalue8|somevalue9

Прохождение через площадку в открытом сеансе q:

pad `:sample.psv

Дает результат:

column1   |column2   |column3
somevalue1|somevalue2|somevalue3
somevalue4|somevalue5|somevalue6
somevalue7|somevalue8|somevalue9

любить это . Я также написал кое-что, что намного длиннее, чем это, но немного более удобно для пользователя. Я также опубликую свое решение здесь, если у меня будет немного времени, чтобы правильно отформатировать его.

user10165841 29.07.2019 13:36

Другие вопросы по теме