Я должен разделить один файл со многими траекториями в отдельные файлы

У меня есть файл по имени Au7. ANI, который имеет следующий формат:

Каждый раз номер 37 появляется как заголовок, это означает, что это - новый набор координат, которые следуют за ним. Это повторяется во времена файла 2,000.

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

Это должно произвести 2 000 файлов, так как существует 2,000 отдельных координат xyz в том файле.

Как я могу сделать, это и каждый файл назвали coord.xyz_1, coord.xyz_2, и т.д. до coord.xyz_2000?

Спасибо!

0
задан 1 August 2016 в 23:36

1 ответ

Я, вероятно, достиг бы csplit, а не жемчуга: трудно дать точный (протестированный) ответ, так как Вы отправили png изображение своего файла вместо фактического текста, но чего-то как

csplit -f 'coord.xyz_' -b '%d' yourfile '/^[[:space:]]*37$/' '{*}'

где

  • -f 'coord.xyz_' устанавливает выходной префикс имени файла
  • -b '%d' устанавливает вывод числовой суффиксный формат на незаполненные десятичные цифры
  • регулярное выражение /^[[:space:]]*37$/ соответствия 37 дополнительно предшествовавший пробелом
  • {*} говорит для повторения предыдущего шаблона максимально много раз

Обратите внимание, что регулярное выражение могло возможно быть упрощено на основе фактического содержания Вашего файла: например, если 37 маркер всегда располагается с отступом единственной вкладкой, Вы могли уменьшить его до /^\t37$/.


Если Вы хотите реализовать что-то эквивалентное в жемчуге (согласно Вашему тегу), то на основе этого предложения, Как я могу разделить текстовый файл на несколько текстовых файлов? Вы могли попробовать

perl -ne 'open(F, ">", "coord.xyz_".++$n) if /[[:space:]]*37/; print F;' yourfile
1
ответ дан 28 September 2019 в 18:15

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

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