LINUX.ORG.RU

Сообщения gagarin0

 

Распарсить текстовый файл. Задача** с двумя звездочками

Форум — Development

Дано:

Тысячи текстовых файлов в которых могут содержаться, помимо текста, куски yaml,json,toml документов, base64 и прочего

Наглядный пример:

$ cat 1.txt
some amazing text data
another cool text line

spec:
  container:
     name: abc
another cool text line with many words
yeah, 42 42 42
{
   "foo": "bar",
   "user": "alice"
}
oh wait, here is another cool text line
and here! another text line
и еще немного текста, а потом

0J/QvtCy0YHRgtGA0LXRh9Cw0LLRiNC40YHRjCDRgdC70YPRh9Cw0LnQvdC+INC90LAg0LLQtdGH0L3QvtC5INC00L7RgNC+0LPQtQrQkdC10Lcg0YHQu9C+0LIg0YEg0YLQvtCx0L7QuSDQvtGB0L7Qt9C90LDQu9C4Cg==

и еще текст

задача* со звездочкой: я ищу готовые решения которые помогли бы определить что в файле есть кроме текста, json, yaml, toml, base64, etc документы

$ cat 1.txt | magicfile
application/yaml
application/json
application/base64

задача** с двумя звездочками: «вычленить» эти документы из текстового файла, что-то в духе

$ cat 1.txt | magicextract 
json: | 
{
   "foo": "bar",
   "user": "alice"
}
     
yaml: |
  spec:
    container:
       name: abc

base64: |
   0J/QvtCy0YHRgtGA0LXRh9Cw0LLRiNC40YHRjCDRgdC70YPRh9Cw0LnQvdC+INC90LAg0LLQtdGH0L3QvtC5INC00L7RgNC+0LPQtQrQkdC10Lcg0YHQu9C+0LIg0YEg0YLQvtCx0L7QuSDQvtGB0L7Qt9C90LDQu9C4Cg==

я смотрю в сторону ast-grep и написания кастомных правил, либо запуск neovim, и через remote API подсовывать ему эти файлики и через LSP сервера попробовать вычленить куски документов.

В идеале нужно что-то в духе apache-tika, которому можно скармливать документ(1.txt,2.txt) и на выходе получать распарсенные куски json,yaml,etc документов

Всезнающий ЛОР в какую сторону копать? последним вариантом я рассматриваю написание очередной неинтересной программы которая бы их парсила, но я уверен что есть готовые решения

 

gagarin0
()

RSS подписка на новые темы