Awk match a multiline pattern


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Awk match a multiline pattern
# 1  
Old 10-12-2009
Awk match a multiline pattern

Hello!

i wanna match in a config file, one text with more than one lines, something like this:

Code:
CACHE_SIZE{
10000 M
}

I have problems with the ends of line, i think that i can match the end of the line with \n, but i can't get it

Someone can help me with the regular expression?

Thanks!
# 2  
Old 10-12-2009
Not sure if I undestood what you need but here is an example with a preceding block and a block afterwards, separated by a blank line:

Code:
$> cat infile
eins
zwei
drei

CACHE_SIZE{
10000 M
}

vier
fuenf
sechs
$> awk '/^CACHE_SIZE/ {print}' FS="\n" RS="" infile
CACHE_SIZE{
10000 M
}

# 3  
Old 10-12-2009
Sorry, but i can use FS="\n" because my file have 3 differents patterns, and i need to use FS="\t". My file is something like this:
Code:
123M     xls     <670K
234K     doc    >800K

CACHE_SIZE{
1000M
}

Then i have a regexp that matches the first pattern, because this i need FS="\t" and need to match the second
Code:
CACHE_SIZE{
1000M
}

# 4  
Old 10-12-2009
Separate the processing of your file into two different runs?

Or check if your line starts with something like your CACHE_SIZE{ and let it do getline until there is a closing curled bracket or work with a flag to notice when the bracket opens and when it closes. So you will not need to change FS or RS for that part.
# 5  
Old 10-12-2009
No, i don't want separate the processing of my file in 2 diferents runs, i wanna run first a regexp, and this retunrs the values to me and then run the second regexp but continuosly not in 2 diferents runs.
# 6  
Old 10-13-2009
Then maybe go with the second suggestion I mentioned.
# 7  
Old 10-13-2009
Ok, thanks!

I'll try to search information about getline works.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

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

2. Shell Programming and Scripting

Pattern match with awk/sed - help

I need to grep for the pattern text inside the square brackets which are in red and not in green..my current code greps patterns both of them, which i don't want Input fileref|XP_002371341.1| oxoacyl-ACP reductase, putative gb|EPT24759.1| 3-ketoacyl-(acyl-carrier-protein) reductase ... (2 Replies)
Discussion started by: selvankj
2 Replies

3. Shell Programming and Scripting

awk Pattern Match One File to Another

I want to read from file 1 and pattern match in file two and print field two from the next line. File 1: user1 user2 user3 File 2: name=user1 gud=12345 name=user2 gud=32456 I have this pattern hardcoded but can't work out how to pass file 1 to the pattern match: (6 Replies)
Discussion started by: u20sr
6 Replies

4. Shell Programming and Scripting

Using sed to pattern match within a particular multiline block and take action

Hi all, This is my first post, so please go easy if I broke some rules. Not accustomed to posting in forums... :) I'm looking for help on pattern matching within a multiline block and looking to highlight blocks/block-ids that do NOT contain a particular pattern. For example an input file... (5 Replies)
Discussion started by: tirodad
5 Replies

5. Shell Programming and Scripting

Awk to match a pattern and perform a search after the first pattern

Hello Guyz I have been following this forum for a while and the solutions provided are super useful. I currently have a scenario where i need to search for a pattern and start searching by keeping the first pattern as a baseline ABC DEF LMN EFG HIJ LMN OPQ In the above text i need to... (8 Replies)
Discussion started by: RickCharles
8 Replies

6. UNIX for Dummies Questions & Answers

sed multiline pattern match

How can I write a script that takes a cisco config file and outputs every occurrence of two, or more, pattern matches through the whole config file? For example, out of a config file, i want to print out every line with interface, description and ip address through the whole file, and disregard... (3 Replies)
Discussion started by: knownasthatguy
3 Replies

7. Shell Programming and Scripting

AWK match $1 $2 pattern in file 1 to $1 $2 pattern in file2

Hi, I have 2 files that I have modified to basically match each other, however I want to determine what (if any) line in file 1 does not exist in file 2. I need to match column $1 and $2 as a single string in file1 to $1 and $2 in file2 as these two columns create a match. I'm stuck in an AWK... (9 Replies)
Discussion started by: right_coaster
9 Replies

8. Shell Programming and Scripting

Multiline pattern search using sed or awk

Hi friends, Could you please help me to resolve the below issue. Input file :- <Node> <username>abc</username> <password>ABC</password> <Node> <Node> <username>xyz</username> <password>XYZ</password> <Node> <Node> <username>mnp</username> ... (3 Replies)
Discussion started by: haiksuresh
3 Replies

9. Shell Programming and Scripting

Use to awk to match pattern, and print the pattern

Hi, I know how to use awk to search some expressions like five consecutive numbers, , this is easy. However, how do I make awk print the pattern that is been matched? For example: input: usa,canada99292,japan222,france59664,egypt223 output:99292,59664 (6 Replies)
Discussion started by: grossgermany
6 Replies

10. Shell Programming and Scripting

want to pattern match using awk

Hello Friends, My script gives an output like below:- but i only want the red part to be displayed. how to i do that. I am enclosing my shell script after that. id='CCRCWebServerINSTALLDIR' id='AdministrationTools-CINSTALLDIR' id='AdministrationTools-ent-CINSTALLDIR'... (3 Replies)
Discussion started by: asirohi
3 Replies
Login or Register to Ask a Question