perl regex multi line cut


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting perl regex multi line cut
# 1  
Old 07-02-2010
perl regex multi line cut

hello mighty all

there's a file with lots of comments.. some of them looks like:

=comment
blabla
blablabla
bla
=cut

i'm trying to cut this out completely with this code:
Code:
$line=~s/^=.+?=cut//sg;

but no luck
also tryed to change it abit but still I don't understand how the multi-line works in regex Smilie
tip78
# 2  
Old 07-02-2010
do you have

Code:
=comment
blabla
blablabla
bla
=cut

assigned to $line ?
# 3  
Old 07-02-2010
Quote:
Originally Posted by agn
do you have

Code:
=comment
blabla
blablabla
bla
=cut

assigned to $line ?
i've tryed to assign all $line's to $newline throught $newline.=$line
then s///s it
same shit
tip78
# 4  
Old 07-02-2010
Code:
$ cat t.pl
$line = <<EOF;
=comment
blabla
blablabla
bla
=cut
woohoo
EOF
$line =~ s/^=.+?=cut//sg;
print $line;
$ perl t.pl

woohoo

# 5  
Old 07-02-2010
dude i didn't get it Smilie
in my file with comments i don't have such $line =<<EOF;

there just lines with code and few comments blocks
so when i do while{} and getting those lines 1 by 1 what should i do to cut out

some code
=comment
blabla
=cut
some code

blocks?
tip78
# 6  
Old 07-02-2010
Give a better example of the input file and the desired output.

Regards
# 7  
Old 07-02-2010
Quote:
Originally Posted by tip78
...
there's a file with lots of comments.. some of them looks like:

=comment
blabla
blablabla
bla
=cut

i'm trying to cut this out completely...
but no luck
...
Maybe something like this ?

Code:
$
$ cat f5
some code here
and some more code here
=comment
blabla
blah blah blah
more blah blah
=cut
some code here
some more code here
=comment
blah more blah
=cut
and more code...
$
$ perl -lne 'BEGIN{undef $/} s/^=.*?=cut//msg; print' f5
some code here
and some more code here
 
some code here
some more code here
 
and more code...
 
$
$

tyler_durden

==
Note that there's a blank line in the output for every comment block. If you don't want those either, then -

Code:
$
$
$ perl -ne 'BEGIN{undef $/} s/^=.*?=cut\n//msg; print' f5
some code here
and some more code here
some code here
some more code here
and more code...
$
$
$

for the same file "f5".

HTH,
tyler_durden
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Get multi-line sed not to run if regex is found

Hello, everyone. Thanks for taking the time to read my post. I have nagios config files for which I'm adding the custom variable _mac_address. I have a sed script that places this variable into an existing file. The problem I'm having is if a line in the file is commented out, I don't want the... (2 Replies)
Discussion started by: JimBass
2 Replies

2. Shell Programming and Scripting

Multi line regex for search and replace

I have text file like below: a.txt Server=abc Run=1 Time=120.123 Tables=10 Sessions=16 Time=380.123 Version=1.1 Jobs=5 Server=abc Run=2 Time=160.123 Tables=15 Sessions=16 Time=400.258 Version=2.0 (1 Reply)
Discussion started by: sol_nov
1 Replies

3. Shell Programming and Scripting

Perl regex to remove a segment in a line

Hello, ksh on Sun5.8 here. I have a pipe-delimited, variable length record file with sub-segments identified with a tilda that we receive from a source outside of our control. The records are huge, and Perl seems to be the only shell that can handle the huge lines. I am new to Perl, and am... (8 Replies)
Discussion started by: gary_w
8 Replies

4. Shell Programming and Scripting

Multi-line filtering based on multi-line pattern in a file

I have a file with data records separated by multiple equals signs, as below. ========== RECORD 1 ========== RECORD 2 DATA LINE ========== RECORD 3 ========== RECORD 4 DATA LINE ========== RECORD 5 DATA LINE ========== I need to filter out all data from this file where the... (2 Replies)
Discussion started by: Finja
2 Replies

5. Shell Programming and Scripting

sed - multi-line regex syntax eval puzzle

sed novice bashing away at this.... I am trying to build a sed script that will find the instances of "cn" that have more than one "DirXML" value on them.... see sample below: I am not having any luck with any variation that tries to find "DirXML.*\nDirXML.*". Isn't there a way to get sed to... (6 Replies)
Discussion started by: gosleddog
6 Replies

6. Shell Programming and Scripting

How to use Perl to join multi-line into single line

Hello, Did anyone know how to write a perl script to merge the multi-line into a single line where each line with start at timestamp Input--> timestamp=2009-11-10-04.55.20.829347; a; b; c; timestamp=2009-11-10-04.55.20.829347; aa; bb; cc; (5 Replies)
Discussion started by: happyday
5 Replies

7. Shell Programming and Scripting

Perl REGEX - How do extract a string in a line?

Hi Guys, In the following line: cn=portal.090710.191533.428571000,cn=groups,dc=mp,dc=rj,dc=gov,dc=br I need to extract this string: portal.090710.191533.428571000 As you can see this string always will be bettween "cn=" and "," strings. Someone know one regular expression to... (4 Replies)
Discussion started by: maverick-ski
4 Replies

8. Shell Programming and Scripting

How to use Perl to merge multi-line into single line

Hi, Can anyone know how to use perl to merge the following multi-line information which beginning with "BAM" into one line. For each line need to delete the return and add a space. Please see the red color line. ******Org. Multi-line) BAM admin 101.203.57.22 ... (3 Replies)
Discussion started by: happyday
3 Replies

9. Shell Programming and Scripting

Multi-line Substitution Gone Awry - perl

I've been working on this all night and finally have to ask for help... and not just from my coffee pot. I need to replace a line of text only when it is proceeded by a line containing only the letter "H" Input: H -2.204711 -0.922090 -0.024814 P 6-311+G(d) **** C 6-311+G(d)... (7 Replies)
Discussion started by: EmperorNorton
7 Replies

10. Shell Programming and Scripting

how do i strip this line using perl regex.

I have a variable dynamically generated $batch = /dataload/R3P/interface/Bowne/reports/RDI00244.rpt Now I'd like to strip '/dataload/R3P/interface/Bowne/reports/RDI' and '.rpt' from this variable my output should be only 00244 how to do this using perl regex.I'm a newbie to perl and would... (1 Reply)
Discussion started by: ramky79
1 Replies
Login or Register to Ask a Question