I think perl would be good for this, it certainly should be easy. Tie::File is good for working with large files since it does not read them into memory, but it does alter the original file so you have to make sure to open the file in readonly mode. A preliminary script:
Code:
#!/usr/bin/perl
use strict;
use warnings;
use Tie::File;
use Fcntl 'O_RDONLY';
tie my @file, 'Tie::File', 'path/to/file', mode => O_RDONLY
or die "Can't open path/to/file: $!";
foreach my $i (10 .. $#file) {
if ($file[$i] =~ /pattern/) {
print qq{"pattern" found on line },$i+1,"$/";
print qq{previous ten lines:$/};
print map{"$_$/"} @file[$i-10 .. $i-1], "----------------------------";
}
}
I am not sure how efficient/ineffiecient this is though.
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)
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)
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)
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)
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)
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)
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)
'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)
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)
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
LEARN ABOUT OSX
tie::scalar
Tie::Scalar(3pm) Perl Programmers Reference Guide Tie::Scalar(3pm)NAME
Tie::Scalar, Tie::StdScalar - base class definitions for tied scalars
SYNOPSIS
package NewScalar;
require Tie::Scalar;
@ISA = qw(Tie::Scalar);
sub FETCH { ... } # Provide a needed method
sub TIESCALAR { ... } # Overrides inherited method
package NewStdScalar;
require Tie::Scalar;
@ISA = qw(Tie::StdScalar);
# All methods provided by default, so define only what needs be overridden
sub FETCH { ... }
package main;
tie $new_scalar, 'NewScalar';
tie $new_std_scalar, 'NewStdScalar';
DESCRIPTION
This module provides some skeletal methods for scalar-tying classes. See perltie for a list of the functions required in tying a scalar to
a package. The basic Tie::Scalar package provides a "new" method, as well as methods "TIESCALAR", "FETCH" and "STORE". The Tie::StdScalar
package provides all the methods specified in perltie. It inherits from Tie::Scalar and causes scalars tied to it to behave exactly like
the built-in scalars, allowing for selective overloading of methods. The "new" method is provided as a means of grandfathering, for classes
that forget to provide their own "TIESCALAR" method.
For developers wishing to write their own tied-scalar classes, the methods are summarized below. The perltie section not only documents
these, but has sample code as well:
TIESCALAR classname, LIST
The method invoked by the command "tie $scalar, classname". Associates a new scalar instance with the specified class. "LIST" would
represent additional arguments (along the lines of AnyDBM_File and compatriots) needed to complete the association.
FETCH this
Retrieve the value of the tied scalar referenced by this.
STORE this, value
Store data value in the tied scalar referenced by this.
DESTROY this
Free the storage associated with the tied scalar referenced by this. This is rarely needed, as Perl manages its memory quite well. But
the option exists, should a class wish to perform specific actions upon the destruction of an instance.
Tie::Scalar vs Tie::StdScalar
"Tie::Scalar" provides all the necessary methods, but one should realize they do not do anything useful. Calling "Tie::Scalar::FETCH" or
"Tie::Scalar::STORE" results in a (trappable) croak. And if you inherit from "Tie::Scalar", you must provide either a "new" or a
"TIESCALAR" method.
If you are looking for a class that does everything for you you don't define yourself, use the "Tie::StdScalar" class, not the
"Tie::Scalar" one.
MORE INFORMATION
The perltie section uses a good example of tying scalars by associating process IDs with priority.
perl v5.16.2 2012-08-26 Tie::Scalar(3pm)