09-23-2008
Print block of lines matching a pattern
Hi
,
I am using the script to search "MYPATTERN" in MYFILE and print that block of lines containing the pattern starting with HEADER upto FOOTER.
But my problem is that at some occurrence my footer is different e.g. ";". How to modify the script so that MYPATTERN between HEADER and different footers can be printed and that too without loosing the sequence.
gawk -v search='MYPATTERN' '
/HEADER/,/FOOTER/ {
block = (block ? block ORS : "") $0;
}
/FOOTER/ {
if (block ~ search)
print block;
block = "";
} ' <MYFILE>
Also, in this script what to modify if I want to print all thing except MYPATTERN blocks.
Please help me in solving this problem.
Thnx in advance.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
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
2. Shell Programming and Scripting
Dear Experts,
I have file called file1 in which i am greping a pattern after that i want to next 3 lines when that pattern is matched.
Ex:- file1
USA
UK
India
Africa
Hello
Asia
Europe
Australia
Hello
Peter
Robert
Jo
i want to next 3 lines after matching Hello... (12 Replies)
Discussion started by: naree
12 Replies
3. Shell Programming and Scripting
Hi Friends,
I am working on a script.. Looking forward for your expert help.....
My requirement is:
I have a text file where, need to search equip * RTF or end of line with RTF ,once this pattern is found then print 2nd line, 6th line, 7th line to a different file.
For Ex:
equip 1... (34 Replies)
Discussion started by: shaliniyadav
34 Replies
4. Shell Programming and Scripting
Hi all,
on Solaris 10, I'd like to print a range of lines starting at pattern but also including the very first line before pattern.
the following doesn't print the range starting at pattern and going down to the end of file: cat <my file> | sed -n -e '/<pattern>{x;p;}/'
I need to include the... (1 Reply)
Discussion started by: siriche
1 Replies
5. Shell Programming and Scripting
I have a file that contains...
Number
--------------------
1
2
3
4
i want to print all the numbers after the hyphen ... (6 Replies)
Discussion started by: ankitknit
6 Replies
6. Shell Programming and Scripting
Hello,
I have two files file 1 and file 2 each having result of a query on certain database tables and need to compare for Col1 in file1 with Col3 in file2, compare Col2 with Col4 and output the value of Col1 from File1 which is a) not present in Col3 of File2 b) value of Col2 is different from... (2 Replies)
Discussion started by: RasB15
2 Replies
7. Shell Programming and Scripting
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
'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. Shell Programming and Scripting
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
10. Shell Programming and Scripting
would like to print everything after matching two patterns AAA and BBB.
output :
CCC
ZZZ
sample data :
AAA
BBB
CCC
ZZZ (4 Replies)
Discussion started by: jhonnyrip
4 Replies
LEARN ABOUT DEBIAN
regexp-assemble
REGEXP-ASSEMBLE(1p) User Contributed Perl Documentation REGEXP-ASSEMBLE(1p)
NAME
regexp-assemble - Assemble a list of regular expressions from a file
SYNOPSIS
regexp-assemble -abcdfinprsStTuUvw file [...]
DESCRIPTION
Assemble a list of regular expression either from standard input or a file, using the Regexp::Assemble module.
OPTIONS
-a look Ahead. Insert "(?=...)" zero-width lookahead assertions in the pattern, where necessary.
-b Blank. Ignore blank lines.
-c Comment. Basic comment filtering. Strip off perl/shell comments ("s*#.*$/").
-d Debug. Turns on debugging output. See Regexp::Assemble for suitable values.
-i Indent. Print the regular expression using and indent of n to display nesting. A.k.a pretty-printing. Implies -p.
-n No newline. Do not print a newline after the pattern. Useful when interpolating the output into a templating system or similar.
-p Print. Print the pattern. This is the default, however, it is required when the -t switch is enabled (because if you want to test
patterns ordinarily you don't care what the the assembled pattern looks like).
-r Reduce. The default behaviour is to reduce the assembled pattern. Enabling this switch causes the reduction algorithm to be switched
off. This can help you determine how much reduction is performed.
regexp-assemble pattern.file | wc
# versus
regexp-assemble -r pattern.file | wc
-s Statistics. Print some statistics about the assembled pattern. The output is sent to STDERR (in order to allow the generated pattern
to be redirected elsewhere).
-S Statistics only. Like -s, except that the pattern itself is not output. Useful with -d 8 to see the time taken.
-t Test. Test the assembled expression against the contents of a file. Each line is read from the file and is matched against the
pattern. Lines that fail to match are printed. In other words, no output is good output. In this mode of operation, error status is 1
in the case of a failure, 0 if all lines matched.
-T Time. Print statistics on the time taken to reduce and assemble the pattern. (This is merely a lazy person's synonym for "-d 8").
-u Unique. Carp if duplicate patterns are found.
-U Unroll. Transform "a+" et al into "aa*" (which may allow additional reductions).
-v Version. Print the version of the regexp-assemble script.
-w Word/Whole. When testing the contents of a file with "-t", bracket the expression with "^" and "$" in order to match the whole word or
line from the file.
DIAGNOSTICS
Will print out a summary of the problem if an added pattern causes the assembly to fail.
SEE ALSO
Regexp::Assemble
AUTHOR
Copyright (C) 2004-2008 David Landgren. All rights reserved.
LICENSE
This script is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl v5.14.2 2012-06-30 REGEXP-ASSEMBLE(1p)