6 Einträge, 1 Seite |
perl -lane 'print $F[1] if /start/../end/' -- somefile
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
#!/usr/bin/perl
use strict;
use warnings;
use constant TRUE => 1;
use constant FALSE => 0;
my $state = FALSE;
while(<DATA>) {
unless( $state == TRUE ) { # wenn Operator unwahr ...
$state = TRUE if /start/; # ... wahr setzen wenn linker Operand wahr
} else { # ansonsten ... ( wenn Operator nicht wahr )
$state = FALSE if /end/; # ... falsch setzen wenn rechter Operand wahr
print if $state == TRUE;
}
}
_ _DATA_ _
nichts
nichts
start
eins
zwei
drei
end
nichts
nichts
start
vier
fuenf
sechs
end
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
#!/usr/bin/perl
use strict;
use warnings;
while(<DATA>) {
print if range_op( scalar(/start/), scalar(/end/) );
}
BEGIN {
my( $true, $false ) = ( 1, 0 );
my $state = $false;
sub range_op {
my( $term_l, $term_r ) = @_;
if( $state == $true ) {
$state = $false if $term_r == $true;
return $state;
}
$state = $true if $term_l == $true;
return 0;
}
}
_ _DATA_ _
nichts
nichts
start
eins
zwei
drei
end
nichts
nichts
start
vier
fuenf
sechs
end
6 Einträge, 1 Seite |