Используя или в мультилинии sed замена

Я перепутан с кажущейся простой частью sed - или оператор. Я записал следующий sed, который анализирует файл события с несколькими событиями, инкапсулировавшими между тегами события, и затем печатает вывод каждого события на 1 строке каждый:

machinename:~$ sed -n "/<event/,/<\/event>/ {/<result/{s/.*result value=\" \(.*\)\"\/>.*/\1/g; p}; /<sender/ {s/.*phoneNo=\"\(.*\)\" country.*/\1/g; p}}" xmlEventLog_2010-02-05T16:40:55.xml | sed '/Allowed/{N;s/\n/ /;}'
Allowed +989350000100
Allowed +989350000209
Allowed +989350000002
Allowed +989350000002
Allowed +989350000100
Allowed +989350000209
Allowed +989350000002
Allowed +989350000002
machinename:~$

От вышеупомянутого существует 8 событий в журнале все с Позволенным результатом. Теперь проблема могло быть больше чем одно значение результата. Значения результата могли быть Заблокированы Измененные или Позволенные. Я думал, что (Blocked|Modified|Allowed) во втором sed обработает это, но я получил следующий вывод:

machinename:~$ sed -n "/<event/,/<\/event>/{/<result/{s/.*result value=\"\(.*\)\"\/>.*/\1/g; p}; /<sender/ {s/.*phoneNo=\"\(.*\)\" country.*/\1/g; p}}" xmlEventLog_2010-02-05T16:40:55.xml | sed '/(Allowed|Blocked|Modified)/{N;s/\n/ /;}'
Allowed
+989350000100
Allowed
+989350000209
Allowed
+989350000002
Allowed
+989350000002
Allowed
+989350000100
Allowed
+989350000209
Allowed
+989350000002
Allowed
+989350000002
machinename:~$

Таким образом, что я пропускаю? почему делает, или в финале sed останавливают замену новой строки?

Заранее спасибо

A

1
задан amadain 6 October 2010 в 16:37
поделиться