need help in PERL Scripting


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting need help in PERL Scripting
# 1  
Old 12-13-2011
need help in PERL Scripting

I am having file xyz.log
Its content is like this

Code:
int main()
{
  d;

  #ifdef
      e;
      f;
  #else 
      g;


  #ifdef
      h.
   #else 
      i;


  RET_OK;
}

-------------------------------
I need to delete the lines starting from
#ifdef to #else

when i am trying this command

Code:
s/#ifdef(.|n)*#else//;

It is deleting like this
--------------
Code:
int main ();
{
d;
i;
RET_OK;
}

-------------

It is deleting "g" also

It is searching from #ifdef until the last #else , and replacing.
I need to delete from #ifdef to the nearest match "#else"
How to do that

what will be the best script command in perl to do this


Moderator's Comments:
Mod Comment How to use code tags

Last edited by Franklin52; 12-20-2011 at 03:28 AM.. Reason: Please use code tags for code and data samples, thank you
# 2  
Old 12-19-2011
The range expression of awk
The pattern1, pattern2 form of an expression is called a range pattern. It matches all input records starting with a record that matches pattern1, and continuing until a record that matches pattern2, inclusive.
may be a better choice. If you have:
Code:
awk '/^#ifdef/,/^#else/ { print; }' filename

you will get:
Code:
#ifdef
e;
f;
#else
#ifdef
h.
#else

which is the lines you want to remove. You cannot negate the pattern:
Code:
awk '! /^#ifdef/,/^#else/ { print; }' filename

instead, you have to do something like:
Code:
awk '{ f = 1; } /^#ifdef/,/^#else/ { f = 0; } f { print; }' filename

which will print the lines not inside the pattern.
Hope this helps.
# 3  
Old 12-19-2011
The Perl way.
Code:
perl -i.bak -pe '(/^#ifdef/../^#else/)&&s/$_//g' inputfile

Also, this one-liner will create a backup of the original input file with '.bak' in its name.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl Scripting

I have create this shell script #!/bin/sh if ; then echo "Usage: ./script <filename>" exit 1 elif ; then fname="$1" fi output="output.txt" i=0 ... (11 Replies)
Discussion started by: Evelin90
11 Replies

2. Web Development

Perl scripting or shell scripting?

i am going to study any one of the scripting languages mentioned above(shell 0r perl scripting) . Which is having more scope for a fresher? (1 Reply)
Discussion started by: Anna Hussie
1 Replies

3. What is on Your Mind?

Shell Scripting vs Perl scripting

Gents, I have been working in a Solaris/Unix environment for about 9 months. I took some linux classses online before getting the job. But, I am not very good at scripting. I want to learn how to script. Do you think that I should start with Shell scripting or Perl? I wanted to continue with... (2 Replies)
Discussion started by: Pouchie1
2 Replies

4. What is on Your Mind?

Shell scripting vs Perl scripting

Hi all, I would like to start developping some good scripting skills. Do you think it would be best to start with shell scripting or Perl? I already got a fundation, really basics, in perl. but I am wondering what would be best to be good at first. Can you please help me determine which one to... (14 Replies)
Discussion started by: Pouchie1
14 Replies

5. UNIX for Dummies Questions & Answers

Need help configuring Active Perl on Windows Vista.: Perl Scripting on Windows

Hi All, Need help configuring Active Perl on Windows Vista. I am trying to install Active Perl on Windows Vista. The version of Active Perl i am trying to install is : ActivePerl 5.10.1 Build 1006 After installing it through cmd, When i try to run perl -v to check the version, i get the... (2 Replies)
Discussion started by: Vabiosis
2 Replies

6. Shell Programming and Scripting

Call Shell scripting from Perl Scripting.

Hi How to call a shell scripting through a Perl scripting? Actually I need some value from Shell scripting and passes in the Perl scripting. So how can i do this? (2 Replies)
Discussion started by: anupdas
2 Replies

7. Shell Programming and Scripting

Need help in perl scripting.

Hi, To run a perl script i am giving command like this in DOS prompt d:> perl D:\<dir_name>\<dir_name>\sample.pl Its throwing the following error while running the above syntax error at <eval 4> line 1, near "use D:" Can anyone help? (3 Replies)
Discussion started by: mvictorvijayan
3 Replies

8. Shell Programming and Scripting

perl scripting

Hi does anyone know how to ouput "I love scripting" to "scripting love I" without using reverse() function in perl? Thanks (2 Replies)
Discussion started by: ccp
2 Replies

9. Shell Programming and Scripting

Perl Scripting

Hi, I want to use the mailx command or sendmail command in perl script. I am trying this one and getting error: system "mailx -s \"Test mail\" $ar1"; Error: The flags you gave are used only when sending mail. (10 Replies)
Discussion started by: vaibhav
10 Replies

10. UNIX for Advanced & Expert Users

Perl scripting

hi Can any one suggest me book for perl scripting on UNIX Platform. Regards (2 Replies)
Discussion started by: rochitsharma
2 Replies
Login or Register to Ask a Question