Как вставить новый разделитель строк через равные (каждые 13) интервалы разделителя в текстовом файле, в котором нет нового разделителя строк

Как вставить новый разделитель строк через равные (каждые 13) интервалы разделителя в текстовом файле, в котором нет нового разделителя строк

У меня есть файл TXT, в котором есть некоторые необработанные данные. Мне нужно преобразовать их в Excel, но мои попытки не увенчались успехом. В файле сотни раз встречается разделитель (разделитель), и это помогает мне преобразовать в Excel, но все данные находятся в одной строке. В моих данных нет маркера/разделителя для новой строки. Я знаю, что данные имеют 12 столбцов. Поэтому на 13-м разделителе должна быть новая строка, и данные могут перейти в новую строку.

Я прочитал много сайтов на эту тему, но нигде не нашел такой же ситуации. Здесь на этом сайте у меня естьнашел мало сходства, но пользователь не указал разделительв данных. Так что бесполезно для меня. Что я могу сделать?

решение1

Я бы использовал Notepad++, чтобы заменить каждый 13-й символ-разделитель на новую строку.

Допустим, ваш разделитель — @.

  1. Откройте файл .txt с помощью Notepad++.
  2. Поиск->Заменять...
  3. Найти то, что: ((?:.*?\@){12}.*?)\@
    Заменить: $1\n
    ПроверятьОбернуть вокруг
    Режим поиска"="Регулярное выражение
    Заменить все

Примечание: Если ваш разделитель не является @, в шаблоне на шаге 3 замените @на ваш разделитель.

решение2

Аналогично (ZygD: спасибо за RE!), но на Perl, а не на NotePad++

<ifile perl -ne " s/((?:.?@){12}.?)@/$1\n/g ; print; " >rfile

где ifile — ваш входной файл

  rfile is results

  the "@" is your separator - change to fit your case

  This matches the requested 13 (12+1) 
      

Кто-нибудь попробует PowerShell?

Связанный контент