sed : match one pattern then the next consecutive second pattern not working


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed : match one pattern then the next consecutive second pattern not working
# 1  
Old 06-20-2013
sed : match one pattern then the next consecutive second pattern not working

Ive used this snippet of code on a solaris box thousands of times.
But it isnt working on the new linux box

Code:
sed -n '/interface LoopBack0/{N;/ ip address /p;}' *.conf

its driving me nuts !!

Is there something Im missing ?
# 2  
Old 06-20-2013
What do you mean by not working? Any errors?

By the way, that command might not always do what you desire. It will print the last line of one file and the first line of the next file, if that particular condition is met.
This may not be desired. It is also possible that such a situation is improbable. I don't know your requirements, so I can only guess/suggest.

Last edited by elixir_sinari; 06-20-2013 at 02:09 PM..
# 3  
Old 06-20-2013
Code:
server> sed -n "/interface Loopback/{N;/ ip address /p;}" *.conf
server>

Its not finding those lines. No errors. Im sure the lines exist, I double checked a few files. (pretty common config anyway .. )

I also tried to use ' instead of "


I did have a typo ... the B in loopback should have been lower but that change didnt make a difference.
# 4  
Old 06-20-2013
Could you show/post input sample/s? That will make things a lot better.
# 5  
Old 06-21-2013
The file would look like this

interface Loopback0
description ny to miami
ip address 10.11.12.13 255.255.255.255
!
interface Loopback39
description ny to dallas
ip address 10.14.15.16 255.255.255.252
!
interface Loopback786
description ny to los angeles
ip address 10.17.18.19 255.255.255.255

there may or may not be lines following the ip address lines.

this is the actualy excution of the code
Code:
server> sed -n "/interface Loopback/{N;/ ip address /p;}" *.conf
server>

This is the system Im using.
Linux Server 2.6.32-358.2.1.el6.x86_64 Wed Mar 13 00:26:49 UTC 2013 x86_64 GNU/Linux

.. and the distribution Im running
Distributor ID: CentOS
Description: CentOS release 6.4
Release: 6.4


Thanks in advance

---------- Post updated 06-21-13 at 09:04 AM ---------- Previous update was 06-20-13 at 01:38 PM ----------

No ideas ?
# 6  
Old 06-21-2013
ip address never occurs on the line immediately following the interface line, so you should not expect any output.

Regards,
Alister
# 7  
Old 06-21-2013
Not sure it's what you're looking for but the following short Perl one-liner can approach it :
Code:
%perl -ne 'chomp $_ ; print if /^interface/ ; print "\t$_\n" if /^ip/'  file

interface Loopback0     ip address 10.11.12.13 255.255.255.255
interface Loopback39    ip address 10.14.15.16 255.255.255.252
interface Loopback786   ip address 10.17.18.19 255.255.255.255

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed -- Find pattern -- print remainder -- plus lines up to pattern -- Minus pattern

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

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

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

4. Shell Programming and Scripting

Rearrange or replace only the second line after pattern match or pattern match

Im using the command below , but thats not the output that i want. it only prints the odd and even numbers. awk '{if(NR%2){print $0 > "1"}else{print $0 > "2"}}' Im hoping for something like this file1: Text hi this is just a test text1 text2 text3 text4 text5 text6 Text hi... (2 Replies)
Discussion started by: invinzin21
2 Replies

5. UNIX for Dummies Questions & Answers

Match Pattern after certain pattern and Print words next to Pattern

Hi experts , im new to Unix,AWK ,and im just not able to get this right. I need to match for some patterns if it matches I need to print the next few words to it.. I have only three such conditions to match… But I need to print only those words that comes after satisfying the first condition..... (2 Replies)
Discussion started by: 100bees
2 Replies

6. Shell Programming and Scripting

How to insert line with between two consecutive lines that match special pattern?

I have following pattern in a file: 00:01:38 UTC abcd 00:01:48 UTC 00:01:58 UTC efgh 00:02:08 UTC 00:02:18 UTC and I need to change something like the following 00:01:38 UTC abcd 00:01:48 UTC XXXX 00:01:58 UTC efgh 00:02:08 UTC XXXX (6 Replies)
Discussion started by: jjnight
6 Replies

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

8. Shell Programming and Scripting

Need one liner to search pattern and print everything expect 6 lines from where pattern match made

i need to search for a pattern from a big file and print everything expect the next 6 lines from where the pattern match was made. (8 Replies)
Discussion started by: chidori
8 Replies

9. Shell Programming and Scripting

Sed Pattern Match

Hi, I would like to use SED to do the following string replacement: asd1abc to www1cda asd2abc to www2cda ... asd9abc to www9cda I can use 'asd.abc' to find the orignal string, however I don't know how to generate the target string. Any suggestion? Thanks, ... (2 Replies)
Discussion started by: mail4mz
2 Replies

10. Shell Programming and Scripting

Match a pattern starting with sub-pattern using sed

Hi all, I've been experiencing a difficulty trying to match a number and write it to a new file. My input file is: input.txt It contains the lines: 103P 123587.256971 3.21472112 3.1517423 1.05897234566427 58.2146258 12.35478 25.3612489 What would be the sed command to... (17 Replies)
Discussion started by: Biederman
17 Replies
Login or Register to Ask a Question