Commenting lines in a file using SED


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Commenting lines in a file using SED
# 8  
Old 03-02-2010
Code:
$str="if(top.location != location){\ntop.location.href = location.href;\n}time to go on \n\n way to life(ksudkd=!kjd\n\ndjdurr\n}" ;
if ($str =~ /.*(if\(top.location != location\)\{.?)(top\.location.href = location\.href;.?)(\}).*/s) {
$str = "//$1//$2//$3";
print "match\n" ;
print $str;
}
else
{
print "doesnot match";
}


cheers,
Devaraj Takhellambam
# 9  
Old 03-02-2010
Quote:
Originally Posted by meetu
after I ran this code my lines are not getting commented at all.and when I run this piece of code in my perl script.It gives me error
[...]
Why don't you do it all in Perl?

Try to add this code:

Code:
{

local ($^I, @ARGV, $/) = ('', 'your_jsp');

my $pattern = <<END;
if(top.location != location){
      top.location.href = location.href;
}
END

(my $new = $pattern) =~ s|^|//|gm;
 

  while (<>) {
   s/\Q$pattern/$new/gs;
   print;
   }
}


Last edited by radoulov; 03-02-2010 at 05:55 AM..
# 10  
Old 03-02-2010
Quote:
Originally Posted by meetu
Hi Czk,

I am actually new to sed .Could you please elaborate ur answer.I did not get it.Cant I merge the }in the third line with the second line and then comment the whole line.
lots of ways to do that but you need to use the hold space. The catch is that sed stores the hold space as a single line with embedded \n's to represent the "real" newlines. so if we were to read the following three lines into holdspace...

line one
line two
last line

the the holdspace would look like this

line one\nline two\nline three

so ^ and $ only match the start and end on the entire hold space.


here's an example that has the same effect as my previous post


#find this pattern
/^if(top.location != location){$/{

#copy to holdspace
h
:comment_lines
{
#get next line
n
#Append to hold space, this accumulates multiple lines in the hold space
#but the pattern space is still only the most recent line read in
H
#continue collecting lines until we find a } on a line of it's own
/^}$/! b comment_lines
#now that we've collected all the lines we want to comment in the hold space
# we swap them back into the pattern space so we can work on them.
x
#and here's the catch...
#handle the start (remember it's now only one line so ^ only matches once)
s/^/\\\\/
#then handle each of the new lines (note the explicit line break)
s/\n/\
\\\\/g
}
}
p
#print the pattern space
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Commenting Multiple lines using Shell Script

I have an xml file which has following code : <abc-ref> <abc-name>abc.efg.hij.klm</abc-name> </abc-ref> I want to comment this whole section out and I have written the following script : (where "hij" is unique string in the file) TEMPFILE=replaceYY.tmp file=hello.xml sed -n... (6 Replies)
Discussion started by: Dish
6 Replies

2. Shell Programming and Scripting

perl: Help with commenting out specific lines

Hi I'm trying to comment out specific lines from /etc/fstab file, for simplicity I'm trying to use perl one liner but it errors out, Below is the Perl oneliner I'm using, perl -wlp -i -e 'BEGIN{$flag=0}if (!/root/) && (!/boot/) && (!/tmpfs/) ) {$flag =1;} elsif (/^$/) {$flag=0} if ($flag)... (2 Replies)
Discussion started by: mbak
2 Replies

3. UNIX for Dummies Questions & Answers

Commenting multiple lines

Hi, Can anyone let me know how to comment multiple lines in VI editor? Many thanks. Regards, Venkat. (3 Replies)
Discussion started by: venkatesht
3 Replies

4. Shell Programming and Scripting

Commenting lines in Shell script

Hi All, I know we can comment by using "#" .... I want to know... is there any way to comment a whole big script easily.... In a file i need to comment more than 15 lines ........ and check the script and un comment back. I am learning VI now so its taking lot of time to comment and un... (4 Replies)
Discussion started by: firestar
4 Replies

5. Shell Programming and Scripting

commenting out lines between two delimiters

Hi All, I am struggling to get my head around the following issue. I am having to comment out lines between two delimiters by placing an asterix in position 7 but retain all lines in the file and in the same order. so for example a file containing: ... ... DELIM1 ... ... DELIM2... (2 Replies)
Discussion started by: Bruble
2 Replies

6. Shell Programming and Scripting

Commenting lines

Hi can any body pls help me : I have a file Which Content is like following: p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog ca:3:respawn:/opt/GoldWing/currentPM/local/critagt > /dev/msglog 2<>/dev/msglog ca:3:respawn:/opt/GoldWing/currentPM/local/startcia.sh... (2 Replies)
Discussion started by: Aditya.Gurgaon
2 Replies

7. Shell Programming and Scripting

Commenting xml file lines

Hi , I have a XML file like this <dependency> <groupId>fr.xxxx.portail.ear</groupId> <artifactId>_xxxEAR</artifactId> <version>1.0.0-20xxxxx.xxxxx-x</version> <type>ear</type> </dependency> I need to comment single/multiple lines from XML file. How can i... (6 Replies)
Discussion started by: scorpio
6 Replies

8. Shell Programming and Scripting

Commenting a Line In a File

HI all I am working on a script, few details are as follows. I have one properties File and one script. The property file contains the JOBID which are to be executed and the Script runs these jobs ONE by ONE. After completing the JOB I need to comment that job in the property File. This is the... (3 Replies)
Discussion started by: Prashantckc
3 Replies

9. Shell Programming and Scripting

How to execute the rest of the code after commenting multiple lines?

Hi, As I have seen in this forum how to comment multiple lines in the script, but it does not work properly for me. It is blocking the code but it does not execute the rest of the codes. This is my code #! /usr/bin/ksh month='date +"m%"' : << Comments Block if || then echo "inc =... (12 Replies)
Discussion started by: Yamini Thoppen
12 Replies

10. UNIX for Dummies Questions & Answers

Commenting lines

How to comment a set of lines in a script? we use # to comment a single line , is there ant other cmd to comment a block? (2 Replies)
Discussion started by: rolex.mp
2 Replies
Login or Register to Ask a Question