Sponsored Content
Top Forums Shell Programming and Scripting Gawk Find Pattern Print Lines Before and After Post 302869985 by Yoda on Thursday 31st of October 2013 04:55:22 PM
Old 10-31-2013
Use an indexed array to store the lines before search pattern and print when pattern is matched.

Something like this should work:
Code:
cvs log | gawk -v L=10 '
        !/date: 2013-10-30/ {

                A[++c] = $0
        }
        /date: 2013-10-30/ {
                for ( i = (c - (L-1)); i <= c; i++ )
                        print A[i]
                print
                for ( j = 1; j <= L; j++ )
                {
                        getline
                        print
                }
                delete A
                c = 0
        }
'


Last edited by Yoda; 10-31-2013 at 06:15 PM.. Reason: delete array
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

print certain pattern from 2 lines

i have 2 lines comming out of a script o/p.below the line. 2008-10-14 05:47:05,551 INFO - LPBatch: 2008-10-14 05:47:05,575 INFO - Number of Intervals Not Inserted: 1 / 95 -------------------------------------------------------------------------- How to print the below o/p from the... (2 Replies)
Discussion started by: ali560045
2 Replies

2. Shell Programming and Scripting

gawk print some special lines

Hi every body, i have this file example : TD1 TD2 TD3 . . .TDn <DIE_1> xxxxxx <\DIE_1> <TD1> information 1 inormation n <\TD1> <TDq> information (0 Replies)
Discussion started by: kamel.kimo
0 Replies

3. Shell Programming and Scripting

print lines up to pattern excluding pattern

11 22 33 44 55 66 77 When pattern 55 is met, print upto it, so output is 11 22 33 44 (1 Reply)
Discussion started by: anilcliff
1 Replies

4. Shell Programming and Scripting

Need one liner to search pattern and print everything expect 6 lines from where pattern match made

i need to search for a pattern from a big file and print everything expect the next 6 lines from where the pattern match was made. (8 Replies)
Discussion started by: chidori
8 Replies

5. Shell Programming and Scripting

need to print lines between repeated pattern

Hi all, I have a file that looks like this: uid=bessemsj version: 1 dn: cn=Desk SpecialAdminDesk, ou=Desks, dc=DSS,c=nl,o=Vodafone dn: cn=DSS Advisors, ou=Groups, dc=DSS,c=nl,o=Vodafone dn: cn=DSS Dispatcher,ou=Groups,dc=DSS,c=nl,o=Vodafone dn: cn=Desk Retention Desk,ou=Desks,... (13 Replies)
Discussion started by: Eman_in_forum
13 Replies

6. Shell Programming and Scripting

Print lines before after pattern meacted

Hi All, Am trying to print pervious lines of the pattern matched, I was able to print pattern matched and the required data but don't know how to get the pervious line. ifconfig -a | grep 10.118.67.33 | sed -e 's/^]*//' -e 's/]*$//' | awk '{FS=" "; print $6}' output I... (2 Replies)
Discussion started by: Optimus81
2 Replies

7. Shell Programming and Scripting

Match Pattern and print pattern and multiple lines into one line

Hello Experts , require help . See below output: File inputs ------------------------------------------ Server Host = mike id rl images allocated last updated density vimages expiration last read <------- STATUS ------->... (4 Replies)
Discussion started by: tigerhills
4 Replies

8. AIX

Grep a pattern and print following n lines

Hi all, I am struck with the below requirement. I need to grep a particular pattern in a file and then print next n lines of it for further processing. I have used the below code grep -A 3 "pattern" filename But it is throwing error as below. grep: illegal option -- A Can... (14 Replies)
Discussion started by: ssk250
14 Replies

9. Shell Programming and Scripting

Find key pattern and print selected lines for each record

Hi, I need help on a complicated file that I am working on. I wanted to extract important info from a very huge file. It is space delimited file. I have hundred thousands of records in this file. An example content of the inputfile as below:- ## ID Ser402 Old; 23... (2 Replies)
Discussion started by: redse171
2 Replies

10. Shell Programming and Scripting

sed -- Find pattern -- print remainder -- plus lines up to pattern -- Minus pattern

The intended result should be : PDF converters 'empty line' gpdftext and pdftotext?xml version="1.0"?> xml:space="preserve"><note-content version="0.1" xmlns:/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size">PDF converters gpdftext and pdftotext</note-content>... (9 Replies)
Discussion started by: Klasform
9 Replies
doctools::cvs(n)						Documentation tools						  doctools::cvs(n)

__________________________________________________________________________________________________________________________________________________

NAME
doctools::cvs - Processing text in 'cvs log' format SYNOPSIS
package require Tcl 8.2 package require textutil package require doctools::cvs ?1? ::doctools::cvs::scanLog text evar cvar fvar ::doctools::cvs::toChangeLog evar cvar fvar _________________________________________________________________ DESCRIPTION
This package provides Tcl commands for the processing and reformatting text in the format generated by the cvs log command. The commands ::doctools::cvs::scanLog and ::doctools::cvs::toChangeLog are derived from code found on the Tcl'ers Wiki [http://wiki.tcl.tk]. See the references at the end of the page. API
::doctools::cvs::scanLog text evar cvar fvar The command takes the text and parses it under the assumption that it contains a CVS log as generated by cvs log. The resulting information is stored in the variables whose names were specified via evar, cvar, and fvar. Already existing information in the referenced variables is preserved, allowing the caller to merge data from multiple logs into one database. varname evar (in) Has to refer to a scalar variable. After the call this variable will contain a list of all the entries found in the log file. An entry is identified through the combination of date and author, and can be split over multiple physical entries, one per touched file. It should be noted that the entries are listed in the same order as they were found in the text. This is not necessarily sorted by date or author. Each item in the list is a list containing two elements, the date of the entry, and its author, in this order. The date is formatted as year/month/day. varname cvar (in) Has to refer to an array variable. Keys are strings containing the date and author of log entries, in this order, separated by a comma. The values are lists of comments made for the entry. varname fvar (in) Has to refer to an array variable. Keys are strings containing date, author of a log entry, and a comment for that entry, in this order, separated by commas. The values are lists of the files the entry is touching. ::doctools::cvs::toChangeLog evar cvar fvar ] The three arguments for this command are the same as the last three arguments of the command ::doctools::cvs::scanLog. This com- mand however expects them to be filled with information about one or more logs. It takes this information and converts it into a text in the format of a ChangeLog as accepted and generated by emacs. The constructed text is returned as the result of the command. BUGS, IDEAS, FEEDBACK This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category doctools of the Tcllib SF Trackers [http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas for enhancements you may have for either package and/or documentation. SEE ALSO
http://wiki.tcl.tk/log2changelog KEYWORDS
changelog, cvs, cvs log, emacs, log CATEGORY
Documentation tools COPYRIGHT
Copyright (c) 2003-2008 Andreas Kupries <andreas_kupries@users.sourceforge.net> doctools 1 doctools::cvs(n)
All times are GMT -4. The time now is 04:18 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy