Sponsored Content
Top Forums Shell Programming and Scripting Pattern matching in file and then display 10 lines above every time Post 302249216 by sethcoop on Monday 20th of October 2008 10:50:08 PM
Old 10-20-2008
what about perl...

What about a simple little perl script????.... the 10 lines above the word "total" will be printed... it will read a file called file.txt.

Code:
#!/usr/local/bin/perl
@array;
open(F, "file.txt") or die "cannot read file";
while(<F>) {
  chomp;
  $my_line = "$_";
 
  if ("$my_line" =~ "total") {
    foreach(@array){
      print "$_\n";
    }
    print "========================================================\n"
  }
  push(@array,$my_line);
  if ("$#array" > "9") {
    shift(@array);
  }
};


Last edited by sethcoop; 10-20-2008 at 11:51 PM.. Reason: .
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Reading lines in a file matching a pattern

Hi, I need to redirect the lines in a file to a different file if the character starting from 2 to 6 in the line are numerical . Please let me know if anyone have any script to do this. Thanks, Ranjit (4 Replies)
Discussion started by: torenji
4 Replies

2. Shell Programming and Scripting

counting the lines matching a pattern, in between two pattern, and generate a tab

Hi all, I'm looking for some help. I have a file (very long) that is organized like below: >Cluster 0 0 283nt, >01_FRYJ6ZM12HMXZS... at +/99% 1 279nt, >01_FRYJ6ZM12HN12A... at +/99% 2 281nt, >01_FRYJ6ZM12HM4TS... at +/99% 3 283nt, >01_FRYJ6ZM12HM946... at +/99% 4 279nt,... (4 Replies)
Discussion started by: d.chauliac
4 Replies

3. Shell Programming and Scripting

delete lines in file matching a pattern

I have a text file, a sample of which is as follows: r/- * 0: WINDOWS/Microsoft.NET/Framework/v2.0.50727/ASP.NETWebAdminFiles/Images/headerGRADIENT_Tall.gif r/- * 0: WINDOWS/SoftwareDistribution/Download/cf8ec753e88561d2ddb53e183dc05c3e/backoff.jpg r/- * 0: ... (2 Replies)
Discussion started by: stumpyuk
2 Replies

4. Shell Programming and Scripting

pattern matching lines using the date, and then joining the lines

Hi Guys, Was trying to attempt the below using awk and sed, have no luck so far, so any help would be appreciated. Current Text File: The first line has got an "\n", and the second line has got spaces/tabs then the word and "\n" TIME SERVER/CLIENT TEXT... (6 Replies)
Discussion started by: eo29
6 Replies

5. Shell Programming and Scripting

Finding lines matching the Pattern and their previous lines in a file

Hi, I am trying to locate the occurences of certain pattern like 'Possible network disconnect' in a text file. I can get the actual lines matching the pttern using: grep -w 'Possible network disconnect' file_name. But I am more interested in getting the timing of these events which are... (7 Replies)
Discussion started by: sagarparadkar
7 Replies

6. UNIX for Dummies Questions & Answers

FIND matching pattern of lines in a file

I need to search for two patterns in a file and find number of matching lines. find . -type f | xargs grep "DROP TABLE" | wc -l find . -type f | xargs grep "DROP SYNONYM" | wc -l The above code works. However I am looking at finding a commnd that will simplify as on a singe command... (2 Replies)
Discussion started by: Siva SQL
2 Replies

7. Shell Programming and Scripting

Want to print out lines with a matching pattern from file

Hi all, I want to search for strings in file1 that can be found in file2 and print out the whole line when matching pattern is found. I have used the below command, but this is not working for me, because it is writing out only the matching patterns from file2, not the whole line. fgrep -o... (2 Replies)
Discussion started by: MonikaB
2 Replies

8. Shell Programming and Scripting

Sed: printing lines AFTER pattern matching EXCLUDING the line containing the pattern

'Hi I'm using the following code to extract the lines(and redirect them to a txt file) after the pattern match. But the output is inclusive of the line with pattern match. Which option is to be used to exclude the line containing the pattern? sed -n '/Conn.*User/,$p' > consumers.txt (11 Replies)
Discussion started by: essem
11 Replies

9. UNIX for Dummies Questions & Answers

Grep -v lines starting with pattern 1 and not matching pattern 2

Hi all! Thanks for taking the time to view this! I want to grep out all lines of a file that starts with pattern 1 but also does not match with the second pattern. Example: Drink a soda Eat a banana Eat multiple bananas Drink an apple juice Eat an apple Eat multiple apples I... (8 Replies)
Discussion started by: demmel
8 Replies

10. Shell Programming and Scripting

Display all lines after a matching variable

Hi, I have a file called abc.txt with the following dates 2016-01-27 2016-01-28 2016-01-29 2016-01-30 2016-01-31 2016-02-01 2016-02-02 2016-02-03 I would like to print all lines below if 2016-01-31 is found, excluding that date. I use this command --> sed '1,/2016-01-31/d' abc.txt If... (4 Replies)
Discussion started by: Nagesh_1985
4 Replies
Mail::Box::Tie::ARRAY(3pm)				User Contributed Perl Documentation				Mail::Box::Tie::ARRAY(3pm)

NAME
Mail::Box::Tie::ARRAY - access an existing message folder as array SYNOPSIS
use Mail::Box::Manager; my $mgr = Mail::Box::Manager->new; my $folder = $mgr->open(folder => 'inbox'); use Mail::Box::Tie::ARRAY; tie my(@inbox), 'Mail::Box::Tie::ARRAY', $folder; # deprecated, but works too use Mail::Box::Tie; tie my(@inbox), 'Mail::Box::Tie', $folder; foreach (@inbox) {print $_->short} print $_->print foreach @inbox; my $emails = @inbox; print $inbox[3]; print scalar @inbox; push @inbox, Mail::Box::Message->new(...); delete $inbox[6]; print $inbox[0]->head->get('status'); my $folder = tied @inbox; untie @inbox; DESCRIPTION
Certainly when you look at a folder as a list of messages, it is logical to access the folder through an array. Not all operations on arrays are supported. Actually, most functions which would reduce the size of the array are modified instead to mark messages for deletion. Examples what you cannot do: shift/unshift/pop/splice @inbox; METHODS
Constructors TIEARRAY('Mail::Box::Tie::ARRAY', FOLDER) Create the tie on an existing folder. example: tie an array to a folder my $mgr = Mail::Box::Manager->new; my $inbox = $mgr->new(folder => $ENV{MAIL}); tie my(@inbox), 'Mail::Box::Tie::Array', ref $inbox, $inbox; Tied Interface $obj->DELETE() Flag a message to be removed. Be warned that the message stays in the folder, and is not removed before the folder is written. example: delete $inbox[5]; $inbox[5]->delete; #same $obj->FETCH(INDEX) Get the message which is at the indicated location in the list of messages contained in this folder. Deleted messages will be returned as "undef". example: print $inbox[3]; # 4th message in the folder print @inbox[3,0]; # 4th and first of the folder print $inbox[-1]; # last message $obj->FETCHSIZE() Return the total number of messages in a folder. This is called when the folder-array is used in scalar context, for instance. example: if(@inbox > 10) # contains more than 10 messages? my $nrmsgs = @inbox; $obj->PUSH(MESSAGES) Add MESSAGES to the end of the folder. example: push @inbox, $newmsg; $obj->STORE(INDEX, MESSAGE) Random message replacement is not permitted --doing so would disturb threads etc. An error occurs if you try to do this. The only thing which is allowed is to store a message at the first free index at the end of the folder (which is also achievable with PUSH()). example: $inbox[8] = $add; $inbox[-1] = $add; push @inbox, $add; $obj->STORESIZE(LENGTH) Sets all messages behind from LENGTH to the end of folder to be deleted. DETAILS
Folder tied as array Limitations This module implements "TIEARRAY", "FETCH", "STORE", "FETCHSIZE", "STORESIZE", "DELETE", "PUSH", and "DESTROY". This module does not implement all other methods as described in the Tie::Array documentation, because the real array of messages is not permitted to shrink or be mutilated. SEE ALSO
This module is part of Mail-Box distribution version 2.105, built on May 07, 2012. Website: http://perl.overmeer.net/mailbox/ LICENSE
Copyrights 2001-2012 by [Mark Overmeer]. For other contributors see ChangeLog. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html perl v5.14.2 2012-05-07 Mail::Box::Tie::ARRAY(3pm)
All times are GMT -4. The time now is 03:29 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy