How to search & delete inclusively between two lines?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to search & delete inclusively between two lines?
# 1  
Old 12-16-2019
How to search & delete inclusively between two lines?

Hi all, I was wondering if anyone would know how to search & delete inclusively between two lines, please:

Important:
  • There are multiple }; lines. I'm curious how to delete the correct one only.
  • Line numbers may vary each time this script is run.

For example, I'd like to delete only the entire entry called deletethisentry.com
Code:
zone "localhost" {
        type master;
        notify no;
        file "db.myzone";
};

zone "deletethisentry.com" {
        type master;
        notify no;
        file "db.myzone";
};

zone "keepthisentry.com" {
        type master;
        notify no;
        file "db.myzone";
};

Thanks so much!
CG


Moderator's Comments:
Mod Comment
Please wrap all code, files, input & output/errors in CODE tags.
It makes them far easier to read and preserves multiple spaces for indenting or fixed-width data.

Last edited by rbatte1; 12-17-2019 at 06:55 AM..
# 2  
Old 12-16-2019
Any attempts / ideas / thoughts from your side?
# 3  
Old 12-16-2019
Unfortunately this attempt doesn't work, because it incorrectly deletes the rest of the file:

#Remove deletethisentry.com
sed -n '/deletethisentry.com/{:a;N;/"};"/!ba;N;s/.*\n/ /};p' /var/named/zones.conf

The problem I have above, is that it should delete only to the next "};" but it instead incorrectly deletes up to the last one.
# 4  
Old 12-16-2019
awk OK?
Code:
awk '/delete/, /^}/ {next} 1' file
zone "localhost" {
type master;
notify no;
file "db.myzone";
};


zone "keepthisentry.com" {
type master;
notify no;
file "db.myzone";
};

This User Gave Thanks to RudiC For This Post:
# 5  
Old 12-16-2019
Code:
sed '/delete/,/^$/d' file

This User Gave Thanks to nezabudka For This Post:
# 6  
Old 12-16-2019
Code:
awk '$1=="zone" { del=($2~/deletethisentry.com/) } !del' /var/named/zones.conf

If Field#1 is "zone" then set del according to field#2 containing "deletethisentry.com"; print if del is 0.
These 2 Users Gave Thanks to MadeInGermany For This Post:
# 7  
Old 12-16-2019
Quote:
Originally Posted by MadeInGermany
Code:
awk '$1=="zone" { del=($2~/deletethisentry.com/) } !del' /var/named/zones.conf

If Field#1 is "zone" then set del according to field#2 containing "deletethisentry.com"; print if del is 0.
Thanks everyone above for your help!

And MadeInGermany, thank you so much!!! What you suggested works great!!! I never thought this could be achieved with 1 simple line of awk!!

Thanks again!!
CG
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

SFTP Shell Script Get & Delete && Upload & Delete

Hi All, Do you have any sample script, - auto get file from SFTP remote server and delete file in remove server after downloaded. - only download specify filename - auto upload file from local to SFTP remote server and delete local folder file after uploaded - only upload specify filename ... (3 Replies)
Discussion started by: weesiong
3 Replies

2. Shell Programming and Scripting

sed search pattern and delete lines

Hello, i have a question. My problem is that i have a file like: TEST JOHN ADAM MICHAEL SEBASTIAN ANDY i want find for MICHAEL and want delete lines like this: TEST (4 Replies)
Discussion started by: eightball
4 Replies

3. Shell Programming and Scripting

search and delete the lines in a file

HI group members I am new in unix I want to search # symbol in a file. if found need to delete the entire row in the file. need to move the actual data(with out # symbol data) to another file. Thanks (2 Replies)
Discussion started by: pmreddy
2 Replies

4. Shell Programming and Scripting

search and replace, when found, delete multiple lines, add new set of lines?

hey guys, I tried searching but most 'search and replace' questions are related to one liners. Say I have a file to be replaced that has the following: $ cat testing.txt TESTING AAA BBB CCC DDD EEE FFF GGG HHH ENDTESTING This is the input file: (3 Replies)
Discussion started by: DeuceLee
3 Replies

5. UNIX for Dummies Questions & Answers

How get only required lines & delete the rest of the lines in file

Hiiii I have a file which contains huge data as a.dat: PDE 1990 1 9 18 51 28.90 24.7500 95.2800 118.0 6.1 0.0 BURMA event name: 010990D time shift: 7.3000 half duration: 5.0000 latitude: 24.4200 longitude: 94.9500 depth: 129.6000 Mrr: ... (7 Replies)
Discussion started by: reva
7 Replies

6. Shell Programming and Scripting

awk search & delete located criteria

Guys, I manages to get awk to search and print the files that I want to delete. However I am stuck on the delete portion. Here is the command that I am using to fins these files. find /usr/local/apache/conf/vhosts/ -type f | awk '/e$/' The output is perfect. The files look like so: ... (4 Replies)
Discussion started by: jaysunn
4 Replies

7. Shell Programming and Scripting

Delete new lines based on search criteria

Hi all! A bit of background: I am trying to create a script that formats SQL statements. I have gotten so far as to add new lines based on certain match criteria like commas, keywords etc. In the process, I end up adding newlines where I don't want. For example: substr(colName, 1, 10)... (3 Replies)
Discussion started by: jayarkay
3 Replies

8. Shell Programming and Scripting

search a word and delete consecutive lines below it

Hi all coders, I need a help to process some data. I have this file, 3 09/21/08 03:32:07 started undef mino Oracle nmx004.wwdc.numonyx.co m Message Text : The Oracle session with the PID 1103 has a CPU time consuming of 999.00... (3 Replies)
Discussion started by: vikas027
3 Replies

9. Shell Programming and Scripting

Advanced Search & Delete Text File

I have a file in which email messages are stored in. Every email is separated by by a ^Z character (Control-Z). I need to extract all emails after the 65,00th one to another file and delete them from the original file. Any suggests on accomplishing this? (2 Replies)
Discussion started by: maxcell
2 Replies

10. Shell Programming and Scripting

search 2 lines and delete above line

Hi, I've been searching in this forum for the last 4 hours trying to do one thing: search 2 lines and delete the above line. So far I have not be able to find something similar in this forum, so I need help. This is what I'm trying to do. For example, I have a file called file1: file1 word1... (4 Replies)
Discussion started by: shamushamu
4 Replies
Login or Register to Ask a Question