Sponsored Content
Top Forums UNIX for Beginners Questions & Answers awk match pattern and print lines till next blank line Post 303045987 by shanul karim on Tuesday 21st of April 2020 05:07:13 AM
Old 04-21-2020
awk match pattern and print lines till next blank line

Dear Experts,




Here is my input files which has various sections of data.


Code:
 SURVEY RESULT

NUMADDR             NUB       NUBA
4-9XXXXXXXXXXX      1244359    1099510
4-9YYYYYYYYYYY           692        586
4-2XXXXXXXXXXX           223        147
4-8YYYYYYYYYYY            1          1

SUMADDR             NUB       NUBA
4-9XXXXXXXXXXX      1244359    1099510
4-9YYYYYYYYYYY           692        586
4-2XXXXXXXXXXX           223        147
4-8YYYYYYYYYYY            1          1


TOTNSUB                NUB       NUBA
4-9XXXXXXXXXXX      128888    1099510
4-9YYYYYYYYYYY           692        586
4-2XXXXXXXXXXX           223        147
4-8YYYYYYYYYYY            1          1

TOTNSUBA             NUB       NUBA
4-9XXXXXXXXXXX      129999    1099510
4-9YYYYYYYYYYY           692        586
4-2XXXXXXXXXXX           223        147
4-8YYYYYYYYYYY            1          1


The below awk command to get data matching first column NUMADDR till number of lines specified in command.
I need only change here is instead of mentioning static number of lines for (y=0;y>4;y++) need all lines till next blank line.


Code:
 awk '{a[++i]=$0;}END{for (j=1;j<NR;j++) {if (a[j]~"NUMADDR") {for (y=0;y>5;y++) print a[j+y]}}}' file


Output should be as below


Code:
NUMADDR             NUB       NUBA
4-9XXXXXXXXXXX      1244359    1099510
4-9YYYYYYYYYYY           692        586
4-2XXXXXXXXXXX           223        147
4-8YYYYYYYYYYY            1          1

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Read lines till a blank line is encountered

Hi, I have reached at a specified offset from the start of file. My requirement is that I want to read only those lines, which have the string READ / ALTER / UPDATE. As soon as, none of these literals are found in the subsequent line, I want to stop reading. Is there any feature of grep which... (1 Reply)
Discussion started by: saurabhsinha23
1 Replies

2. Shell Programming and Scripting

How to print lines till till a pattern is matched in loop

Dear All I have a file like this 112534554 446538656 444695656 225696966 226569744 228787874 113536566 443533535 222564552 115464656 225445345 225533234 I want to cut the file into different parts where the first two columns are '11' . The first two columns will be either... (3 Replies)
Discussion started by: anoopvraj
3 Replies

3. Shell Programming and Scripting

Awk script to match pattern till blank line

Hi, I need to match lines after a pattern, upto the first blank line. Searched in web and some forums but coulnt find the answer. where <restart_step> = 10 -- Execute query 20 -- Write the contents to the Oracle table 30 -- Writing Contents to OUTPUT... (7 Replies)
Discussion started by: justchill
7 Replies

4. Shell Programming and Scripting

Grep the word from pattern line and update in subsequent lines till next pattern line reached

Hi, I have got the below requirement. please suggest. I have a file like, Processing Item is: /data/ing/cfg2/abc.txt /data/ing/cfg3/bgc.txt Processing Item is: /data/cmd/for2/ght.txt /data/kernal/config.klgt.txt I want to process the above file to get the output file like, ... (5 Replies)
Discussion started by: rbalaj16
5 Replies

5. Shell Programming and Scripting

Displaying text till pattern match found in a line

Hi All, From the below line if we want to display all the text till found pattern dot/. I was trying with the below code but couldn't able to print text before the pattern. it display texts which is found after pattern. awk '/assed/{print;getline;print}' file_name | sed 's/^*. *//' input... (4 Replies)
Discussion started by: Optimus81
4 Replies

6. Shell Programming and Scripting

awk print pattern match line and following lines

Data: Pattern Data Data Data Data Data Data Data Data Data ... With awk, how do I print the pattern matching line, then the subsequent lines following the pattern matching line. Varying number of lines following the pattern matching line. (9 Replies)
Discussion started by: dmesserly
9 Replies

7. Shell Programming and Scripting

Match pattern and print the line number of occurence using awk

Hi, I have a simple problem but i guess stupid enough to figure it out. i have thousands rows of data. and i need to find match patterns of two columns and print the number of rows. for example: inputfile abd abp 123 abc abc 325 ndc ndc 451 mjk lkj... (3 Replies)
Discussion started by: redse171
3 Replies

8. Shell Programming and Scripting

UNIX help to print 50 lines after every 3rd occurrence pattern till end of file

I need help with extract/print lines till stop pattern. This needs to happen after every 3rd occurrence of start pattern and continue till end of file. Consider below is an example of the log file. my start pattern will be every 3rd occurrence of ERROR_FILE_NOT_FOUND and stop pattern will be... (5 Replies)
Discussion started by: NSS
5 Replies

9. 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

10. Shell Programming and Scripting

awk to combine lines from line with pattern match to a line that ends in a pattern

I am trying to combine lines with these conditions: 1. First line starts with text of "libname VALUE db2 datasrc" where VALUE can be any text. 2. If condition1 is met then continue to combine lines through a line that ends with a semicolon. 3. Ignore case when matching patterns and remove any... (5 Replies)
Discussion started by: Wes Kem
5 Replies
PCREGREP(1)						      General Commands Manual						       PCREGREP(1)

NAME
pcregrep - a grep with Perl-compatible regular expressions. SYNOPSIS
pcregrep [-Vcfhilnrsvx] pattern [file] ... DESCRIPTION
pcregrep searches files for character patterns, in the same way as other grep commands do, but it uses the PCRE regular expression library to support patterns that are compatible with the regular expressions of Perl 5. See pcre(3) for a full description of syntax and semantics. If no files are specified, pcregrep reads the standard input. By default, each line that matches the pattern is copied to the standard out- put, and if there is more than one file, the file name is printed before each line of output. However, there are options that can change how pcregrep behaves. Lines are limited to BUFSIZ characters. BUFSIZ is defined in <stdio.h>. The newline character is removed from the end of each line before it is matched against the pattern. OPTIONS
-V Write the version number of the PCRE library being used to the standard error stream. -c Do not print individual lines; instead just print a count of the number of lines that would otherwise have been printed. If sev- eral files are given, a count is printed for each of them. -ffilename Read patterns from the file, one per line, and match all patterns against each line. There is a maximum of 100 patterns. Trailing white space is removed, and blank lines are ignored. An empty file contains no patterns and therefore matches nothing. -h Suppress printing of filenames when searching multiple files. -i Ignore upper/lower case distinctions during comparisons. -l Instead of printing lines from the files, just print the names of the files containing lines that would have been printed. Each file name is printed once, on a separate line. -n Precede each line by its line number in the file. -r If any file is a directory, recursively scan the files it contains. Without -r a directory is scanned as a normal file. -s Work silently, that is, display nothing except error messages. The exit status indicates whether any matches were found. -v Invert the sense of the match, so that lines which do not match the pattern are now the ones that are found. -x Force the pattern to be anchored (it must start matching at the beginning of the line) and in addition, require it to match the entire line. This is equivalent to having ^ and $ characters at the start and end of each alternative branch in the regular expression. SEE ALSO
pcre(3), Perl 5 documentation DIAGNOSTICS
Exit status is 0 if any matches were found, 1 if no matches were found, and 2 for syntax errors or inacessible files (even if matches were found). AUTHOR
Philip Hazel <ph10@cam.ac.uk> Last updated: 15 August 2001 Copyright (c) 1997-2001 University of Cambridge. PCREGREP(1)
All times are GMT -4. The time now is 10:51 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy