Remove multiple lines that match pattern


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Remove multiple lines that match pattern
# 1  
Old 03-10-2015
Remove multiple lines that match pattern

Not sure how I can accomplish this. I would like to remove all interfaces that have the commands I would like to see: switchport port-security, spanning-tree portfast. One line is no problem.

Code:
interface FastEthernet0/8
 spanning-tree portfast 
interface FastEthernet0/9
 spanning-tree portfast
interface FastEthernet0/10 
 spanning-tree portfast
interface FastEthernet0/11
 switchport port-security
 spanning-tree portfast
interface FastEthernet0/12

I would like the results to be
Code:
interface FastEthernet0/8
 spanning-tree portfast 
interface FastEthernet0/9
 spanning-tree portfast
interface FastEthernet0/10 
 spanning-tree portfast
interface FastEthernet0/12


Thanks
# 2  
Old 03-10-2015
Not clear. Do you want to remove those interfaces that have both commands trailing?
# 3  
Old 03-10-2015
Quote:
Originally Posted by RudiC
Not clear. Do you want to remove those interfaces that have both commands trailing?
Yes, correct.
# 4  
Old 03-10-2015
Try
Code:
awk     'function PRTOUT()      {if (SW&&ST) return;
                                 print IN; if (SW) print SW; if (ST) print ST};
         /interface/            {if (NR > 1) PRTOUT();  SW=ST=""; IN=$0}
         /switchport/           {SW=$0}
         /spanning-tree/        {ST=$0}
         END                    {PRTOUT()}
        ' file
interface FastEthernet0/8
 spanning-tree portfast 
interface FastEthernet0/9
 spanning-tree portfast
interface FastEthernet0/10 
 spanning-tree portfast
interface FastEthernet0/12

# 5  
Old 03-10-2015
Try:
Code:
awk '/interface/{print x}1' file | awk '!(/switchport port-security/ && /spanning-tree portfast/)' RS=

Code:
interface FastEthernet0/8
 spanning-tree portfast 
interface FastEthernet0/9
 spanning-tree portfast
interface FastEthernet0/10 
 spanning-tree portfast
interface FastEthernet0/12

This User Gave Thanks to Scrutinizer For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Removing multiple lines from input file, if multiple lines match a pattern.

GM, I have an issue at work, which requires a simple solution. But, after multiple attempts, I have not been able to hit on the code needed. I am assuming that sed, awk or even perl could do what I need. I have an application that adds extra blank page feeds, for multiple reports, when... (7 Replies)
Discussion started by: jxfish2
7 Replies

2. Shell Programming and Scripting

Awk; pattern match, remove and re write

the following pattern match works correctly for me awk '/name="Fruits"/{f=1;next} /"name=Vegetables"/{f=0} f' filename This works well for me. Id like to temporarily move the match out of the file ( > newfile) and be able to stick it back in the same place at a later time. Is this... (7 Replies)
Discussion started by: TY718
7 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

Awk-sed help : to remove first and last line with pattern match:

awk , sed Experts, I want to remove first and last line after pattern match "vg" : I am trying : # sed '1d;$d' works fine , but where the last line is not having vg entry it is deleting one line of data. - So it should check for the pattern vg if present , then it should delete the line ,... (5 Replies)
Discussion started by: rveri
5 Replies

5. Shell Programming and Scripting

Awk match multiple columns in multiple lines in single file

Hi, Input 7488 7389 chr1.fa chr1.fa 3546 9887 chr5.fa chr9.fa 7387 7898 chrX.fa chr3.fa 7488 7389 chr21.fa chr3.fa 7488 7389 chr1.fa chr1.fa 3546 9887 chr9.fa chr5.fa 7898 7387 chrX.fa chr3.fa Desired Output 7488 7389 chr1.fa chr1.fa 2 3546 9887 chr5.fa chr9.fa 2... (2 Replies)
Discussion started by: jacobs.smith
2 Replies

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

7. Shell Programming and Scripting

shell script: grep multiple lines after pattern match

I have sql file containing lot of queries on different database table. I have to filter specific table queries. Let say i need all queries of test1,test2,test3 along with four lines above it and sql queries can be multi lines or in single line. Input file contains. set INSERT_ID=1; set... (1 Reply)
Discussion started by: mirfan
1 Replies

8. Shell Programming and Scripting

Remove lines from batch of files which match pattern

I need to remove all lines which does not match the pattern from a text file (batch of text files). I also need to keep the header line which is the first line of the file. Please can you provide an example for that. I used this to solve half of my work. I was unable to keep the first line of... (3 Replies)
Discussion started by: talktobog
3 Replies

9. Shell Programming and Scripting

Perl: Printing Multiple Lines after pattern match

Hello People, Need some assistance/guidance. OUTLINE: Two files (File1 and File2) File1 has some ids such as 009463_3922_1827 897654_8764_5432 File2 has things along the lines of: Query= 009463_3922_1827 length=252 (252 letters) More stufff here ... (5 Replies)
Discussion started by: Deep9000
5 Replies

10. Shell Programming and Scripting

Concatenating multiple lines to one line if match pattern

Hi all, I've been working on a script which I have hit a road block now. I have written a script using sed to extract the below data and pumped into another file: Severity............: MAJORWARNING Summary: System temperature is out of normal range. Severity............: MAJORWARNING... (13 Replies)
Discussion started by: phixsius
13 Replies
Login or Register to Ask a Question