The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
.
google unix.com



Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
How to print data between 2 lines in a file kamesh83 UNIX for Advanced & Expert Users 5 12-18-2008 12:14 PM
print all even lines of a txt file ajp7701 Shell Programming and Scripting 1 04-17-2008 11:17 PM
How to print only lines in between two strings using awk jisha Shell Programming and Scripting 4 01-11-2008 04:13 AM
print selected lines tonet Shell Programming and Scripting 6 10-08-2007 05:50 AM
Print only certain lines from a text file CamTu Shell Programming and Scripting 1 06-01-2005 11:47 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 07-16-2008
jack00423 jack00423 is offline
Registered User
  
 

Join Date: Jul 2008
Posts: 23
Need to print certain lines from a file

Hi ALL,

I want to print lines from file using certain conditions
for exmple:
# The following commands will create a new control file and use it
# to open the database.
# The contents of online logs will be lost and all backups will
# be invalidated. Use this only if online logs are damaged.

;
ALTER DATABASE OPEN;
SIZE 2000M REUSE AUTOEXTEND OFF;
SIZE 2000M REUSE AUTOEXTEND OFF;
;
ALTER DATABASE OPEN RESETLOGS;
SIZE 2000M REUSE AUTOEXTEND OFF;
SIZE 2000M REUSE AUTOEXTEND OFF;


here i want to print lines between first occurance of ";" and second occurance of it.

Thanks
Jack
  #2 (permalink)  
Old 07-16-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Join Date: May 2008
Location: Sydney, Australia
Posts: 1,009
Code:
awk '/^;$/ { while (getline && $0 !~ /^;$/) { print } ; exit }' inputfile > outputfile
  #3 (permalink)  
Old 07-16-2008
jack00423 jack00423 is offline
Registered User
  
 

Join Date: Jul 2008
Posts: 23
thanks for quick reply...

Thanks a lot..
  #4 (permalink)  
Old 07-16-2008
jack00423 jack00423 is offline
Registered User
  
 

Join Date: Jul 2008
Posts: 23
Regarding that script

Hi,

I am new to scripting..
awk '/^;$/ { while (getline && $0 !~ /^;$/) { print } ; exit }' 6 > 7

could you please explain me what it does and how does it check.

Thanks
Jack
  #5 (permalink)  
Old 07-17-2008
jack00423 jack00423 is offline
Registered User
  
 

Join Date: Jul 2008
Posts: 23
One more query on printing lines

HII,

I want to print lines from file based on certain line
exapmple

RECOVER DATABASE
ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP ADD TEMPFILE ;
ALTER TABLESPACE TEMP ADD TEMPFILE ;
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "PATCH01" RESETLOGS NOARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 16
MAXLOGMEMBERS 5
MAXDATAFILES 512
MAXINSTANCES 1
MAXLOGHISTORY 7260
LOGFILE;

here i want to print from "ALTER DATABASE OPEN" till before startup nomount


Please help on this..

Thanks and Regards
Jack
  #6 (permalink)  
Old 07-17-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Join Date: May 2008
Location: Sydney, Australia
Posts: 1,009
Here it is again with comments

Code:
awk '
    # for every line containing just a ";"
    /^;$/ {
        # read subsequent lines until we reach another one containing
        # just a ";"
        while (getline && $0 !~ /^;$/) {
            # print them
            print
        }
        # exit from the script (i.e. do not process any more lines)
        exit
    }
' inputfile > outputfile
To satisfy your new requirement you only need to modify the script slightly to search for different strings instead of ";".
  #7 (permalink)  
Old 07-17-2008
jack00423 jack00423 is offline
Registered User
  
 

Join Date: Jul 2008
Posts: 23
Hi,

Instead of strings specifying...i want to print from certain line to line in file..
exapmple

RECOVER DATABASE
ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP ADD TEMPFILE ;
ALTER TABLESPACE TEMP ADD TEMPFILE ;
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "PATCH01" RESETLOGS NOARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 16
MAXLOGMEMBERS 5
MAXDATAFILES 512
MAXINSTANCES 1
MAXLOGHISTORY 7260
LOGFILE;

here i want to print from "ALTER DATABASE OPEN" till "MAXINSTANCES 1" line

Please help on this ..
Thanks
Jack
Sponsored Links
Closed Thread

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -4. The time now is 09:51 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language translation by Google.
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0