Сплит файл после появления числа разделителя - PullRequest
0 голосов
/ 31 октября 2019

мой вопрос, по сути, такой же, как и в файле разделения для N-го вхождения разделителя , за исключением того, что решение разделит разделитель перед разделением. Как бы я разделить ошибку после N-го вхождения разделителя при сохранении всех символов исходного файла? Файл примера:

aaa
bbb
$$$$
ccc
ddd
eee
$$$$
fff
ggg
hhhhh
$$$$

разделение после каждого второго вхождения $$$$

awk '/^\$\$\$\$$/ { if(++delim % 2 == 0) { next } } { file = sprintf("chunk%s.txt", int(delim / 2)); print; END { print "ds" } }' < file

приведет к удалению разделителя в конце файла чанка

1 Ответ

1 голос
/ 31 октября 2019

Если я правильно понял, и вы хотите разделить файлы при каждом втором появлении $$$$, попробуйте выполнить следующее.

awk -v file="1" -v occur="2" '
{
  print > (file".txt")
}
/^\$\$\$\$$/{
  count++
  if(count%occur==0){
    if(file){
      close(file".txt")
      ++file
    }
  }
}
'  Input_file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...