Leser: 19
s/(<Kursstamm>.+?)(<Texteinmischdefinitionen>\n.+?<\/Texteinmischdefinitionen>\n)/$2$1/gs;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
#!/usr/bin/perl # vi:ts=4 sw=4 et: use strict; use warnings; { # jeder block ende mit folgendem string local $/ = "</Texteinmischdefinitionen>\n"; # lese blockweise ein while ( my $block = <DATA> ) { $block =~ s{(.+)(<Kursstamm>.+?)(<Texteinmischdefinitionen>.+</Texteinmischdefinitionen>\n)$}{$1$3$2}gsm; print $block; } } __DATA__ <Kursstamm>1 blabla1 blabla2 blabla3 blabla4 <Kursstamm>2 blabla1 blabla2 blabla3 blabla4 <Kursstamm>3 blabla1 blabla2 blabla3 blabla4 <Kursstamm>4 blabla1 blabla2 blabla3 blabla4 <Texteinmischdefinitionen> 1 </Texteinmischdefinitionen> <Kursstamm>5 blabla1 blabla2 blabla3 blabla4 <Kursstamm>6 blabla1 blabla2 blabla3 blabla4 <Kursstamm>7 blabla1 <Texteinmischdefinitionen> 2 </Texteinmischdefinitionen>
2009-04-19T16:41:35 waldviertlerHi Linuxuser
2009-04-19T16:41:35 waldviertlerAber beim 2. Vorkommen wird der Block nicht vor <Kursstamm>7 gereiht.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<Kursstamm>1
blabla1
blabla2
blabla3
blabla4
<Kursstamm>2
blabla1
blabla2
blabla3
blabla4
<Kursstamm>3
blabla1
blabla2
blabla3
blabla4
<Texteinmischdefinitionen>
1
</Texteinmischdefinitionen>
<Kursstamm>4
blabla1
blabla2
blabla3
blabla4
<Kursstamm>5
blabla1
blabla2
blabla3
blabla4
<Kursstamm>6
blabla1
blabla2
blabla3
blabla4
<Texteinmischdefinitionen>
2
</Texteinmischdefinitionen>
<Kursstamm>7
blabla1