Проблемы с расщеплением текстового скрипта - PullRequest
0 голосов
/ 30 января 2019

Я хочу разбить один большой текстовый документ (.txt) на несколько.Текстовый документ представляет собой кучу дебатов в испанском парламенте.Текст разделен на политические инициативы (я не уверен, что это идиоматично), и я хочу разделить его на документ по инициативе.Самое смешное, что каждая инициатива имеет свой собственный заголовок в следующей форме:

- DEL GRUPO PARLAMENTARIO CATALÁN (CONVERGÈNCIA I UNIÓ), REGULADORA DE LOS HORARIOS COMERCIALES. (Número de expediente 122/000004.)

- DEL DIPUTADO DON MARIANO RAJOY BREY, DEL GRUPO PARLAMENTARIO POPULAR EN EL CONGRESO, QUE FORMULA AL SEÑOR PRESIDENTE DEL GOBIERNO: ¿CÓMO VALORA USTED LOS PRIMEROS DÍAS DE SU GOBIERNO? (Número de expediente 180/000021.)

Как видите, каждый заголовок в верхнем регистре, начинается с минуса и заканчивается "XXX / XXXXXX.) "(где X - цифра), точка и закрывающая скобка.Каждый заголовок отличается друг от друга.Хотя у меня есть несколько регулярных выражений, чтобы отразить эти характеристики, чтобы между этими дебатами был элемент-разделитель.

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

awk '/^-.+[0-9]{3}\/[0-9]{6}\.\)$/ {
        if (p) close (p)
        p = sprintf("split%05i.txt", ++i) }
    { if (p) print > "p" }' inputfile.txt

Но когда я запускаю его (с Cygwin в W10), ничего не происходит.Я думал, что это связано с проблемой конфигурации Windows или чем-то в этом роде, но я только что попробовал на ВМ Ubuntu, и то же самое происходит, то есть ничего не происходит:

$ ls -l
total 228
-rw-rw-r-- 1 ubuntu ubuntu 219166 Jan 30 11:28 tryme.txt
-rwxr-xr-x 1 ubuntu ubuntu   8259 Jan 30 11:24 ubiquity.desktop

$ awk '/^-.+[0-9]{3}\/[0-9]{6}\.\)$/ {
        if (p) close (p)
        p = sprintf("split%05i.txt", ++i) }
    { if (p) print > "p" }' tryme.txt

$ ls -l
total 228
-rw-rw-r-- 1 ubuntu ubuntu 219166 Jan 30 11:28 tryme.txt
-rwxr-xr-x 1 ubuntu ubuntu   8259 Jan 30 11:24 ubiquity.desktop

Есть идеи о том, что здесь происходит?Большое спасибо.

...