Search and Remove Lines within File


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Search and Remove Lines within File
# 1  
Old 02-01-2010
Search and Remove Lines within File

Hello,

I've searched through the scripting section but could not find what I need.

I need to search for empty sections within a file and remove them.

Here is an example file:
Code:
 
Title 123
A
B
C
D
E
 
Title 098
 
Title 567
Z
Y
X

I need to remove “Title 098” because it is empty, but keep sections and title header for “Title 123” & “Title 567”

So the output would be:

Code:
 
Title 123
A
B
C
D
E
 
Title 567
Z
Y
X

The "Title" is the common header of all sections from all inputed files. I use /bin/sh.

Any assistance would be GREATLY appreciative
# 2  
Old 02-01-2010
Be my guest.

Code:
$ cat filter.sh
#!/bin/bash
# sorry, I'm basher ...
# usage:
# cat oldfile | ./filter.sh > newfile

C=0
TITLE='Title ???'
while read LINE; do
        if [ -z "`echo "$LINE" | grep -i "Title"`" ]; then
                if [ ! -z "$LINE" ]; then
                        if [ $C == 0 ]; then
                                echo "$TITLE"
                        fi
                        C=$((C + 1))
                fi
                echo "$LINE"
        else
                TITLE="$LINE"
                C=0
        fi
done

This does not remove multiple newlines, however.
# 3  
Old 02-01-2010
Code:
sed "/Title/{N;/\n *$/d;}" file

# 4  
Old 02-01-2010
Thanks, anbu23! That did it!!!

Thank you dpc. I'm learning bash and wrote your script down for future purposes.
# 5  
Old 02-01-2010
Damn. I have to learn sed. My long script looks miserable now. Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Remove lines that are subsets of other lines in File

Hello everyone, Although it seems easy, I've been stuck with this problem for a moment now and I can't figure out a way to get it done. My problem is the following: I have a file where each line is a sequence of IP addresses, example : 10.0.0.1 10.0.0.2 10.0.0.5 10.0.0.1 10.0.0.2... (5 Replies)
Discussion started by: MisterJellyBean
5 Replies

2. UNIX for Dummies Questions & Answers

Want to remove all lines but not latest 50 lines from a file

Hi, I have a huge file which has Lacs of lines. File system got full. I want your guys help to suggest me a solution so that I can remove all lines from that file but not last 50,000 lines. I want solution which can remove lines from existing file so that I can have some space left with. (28 Replies)
Discussion started by: prashant2507198
28 Replies

3. Shell Programming and Scripting

How to search multiple patterns and remove lines from a file?

Hi, I have a file content as below. Table : PAYR Displayed fields: 15 of 15 Fixed columns: 4 List width 0999... (4 Replies)
Discussion started by: shirdi
4 Replies

4. Shell Programming and Scripting

Search and remove the lines

Hallo Team, Hope you are having a wonderful Friday. Here goes i am searching for a pattern and after finding the lines which contain this pattern i want to remove/delete them. This is my code: grep Originating BW*2013*|grep -v "ACCOUNT NOT FOUND"|grep -v "Unknown called number"|grep -v... (2 Replies)
Discussion started by: kekanap
2 Replies

5. Shell Programming and Scripting

Search based on 1,2,4,5 columns and remove duplicates in the same file.

Hi, I am unable to search the duplicates in a file based on the 1st,2nd,4th,5th columns in a file and also remove the duplicates in the same file. Source filename: Filename.csv "1","ccc","information","5000","temp","concept","new" "1","ddd","information","6000","temp","concept","new"... (2 Replies)
Discussion started by: onesuri
2 Replies

6. Shell Programming and Scripting

Search and remove in a text file

Need help whit a script where I have to input a name and then remove a line where that name is in a file file ex: 001op;Name;Location;date 002op;Name;Location;date and so on.... can anybody help me??? thanks (4 Replies)
Discussion started by: nogame11
4 Replies

7. Shell Programming and Scripting

remove : lines from file

A small question I have a test.txt file I have contents as: a:google b:yahoo : c:facebook : d:hotmail How do I remove the line with : my output should be a:google b:yahoo c:facebook d:hotmail (5 Replies)
Discussion started by: aronmelon
5 Replies

8. Shell Programming and Scripting

remove lines from file

Hi gurus, i'm trying to remove a number of lines from a large file using the following command: sed '1,5000d' oldfile > newfile Somehow the lines in the old file are not deleted... Am I doing this wrongly? Any suggestions? :confused: Thanks! :) wee (10 Replies)
Discussion started by: lweegp
10 Replies

9. UNIX for Dummies Questions & Answers

vi to remove lines in file

All, I have a text file with several entries like below: personname personname.domain.com I know there is a way to use vi to remove only the personname.domain.com line. Can someone help? I believe that it involves /s/g/ something...I just can't remember the exact syntax. Thanks (2 Replies)
Discussion started by: kjbaumann
2 Replies

10. Shell Programming and Scripting

different take on common ?: search for two strings and remove lines between them

Thank you for assisting, I've got a partial solution just needs a tweak. Hulk-BASH$ cat somefile.txt oh there is some stuff here some more stuff here START_LABEL stuff I want more stuff I want END_LABEL other stuff here too and even more stuff here too Hulk-BASH$ Hulk-BASH$ sed... (8 Replies)
Discussion started by: laser
8 Replies
Login or Register to Ask a Question