Help with deleting some parts from text file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Help with deleting some parts from text file
# 1  
Old 06-01-2012
Help with deleting some parts from text file

Hi all,

I have a fat file which contains something like this:
************************************************
Code:
blahblahblah
blahblahblah
Myobject1 HOME (
homecontents01 (
              some junk;
        )
       home contents02(
              some junk;
        )
 home_other_contents;
)
hellohellohello
hellohellohello
Myobject2 HOME (
         homecontents10 (
              some junk;
        )
        home contents11(
              some junk;
        )
        home_other_contents;
)
thanxthanxthanx
thanxthanxthanx

***********************************************

I want to delete the every HOME block from the file along with its (block's) contents.[There are other similar blocks which don't start with HOME and I want to retain them]

So that my output file changes to:
**********************************************
Code:
blahblahblah
blahblahblah
hellohellohello
hellohellohello
thanxthanxthanx
thanxthanxthanx

**********************************************


Any help using sed/awk etc. [any unix thing] will be appreciated.

Lot of thanx in advance
Smilie

Last edited by joeyg; 06-01-2012 at 11:40 AM.. Reason: Please wrap data and commands with CodeTags
# 2  
Old 06-01-2012
Are you removing rows with certain special characters?
; ( )

That might make it easy for a grep -v command?
# 3  
Old 06-01-2012
Quote:
Originally Posted by joeyg
Are you removing rows with certain special characters?
; ( )

That might make it easy for a grep -v command?
Not really, Actually the file contains many other blocks similar to HOME, just instead of HOME they begin with OFFICE. Those blocks again contain similar special characters , however I dont wish to delete the OFFICE block.

I just wish to delete the content of block HOME (....)

Hope I have explained myself clearly.Smilie
Thanks for quick reply Smilie
# 4  
Old 06-01-2012
Try:
Code:
sed '/HOME.*(/,/^)/d' infile

This User Gave Thanks to Scrutinizer For This Post:
# 5  
Old 06-01-2012
Quote:
Originally Posted by Scrutinizer
Try:
Code:
sed '/HOME.*(/,/^)/d' infile

Hi, Thanks a lot, it worked Smilie
can u please explain in short, what regexp {HOME.*(/,/^)} is matching to ?
Just curious. Thanks again.
# 6  
Old 06-01-2012
Hi, it is a "range pattern" consisting of two regexes, /HOME.*(/ and /^)/.
This User Gave Thanks to Scrutinizer For This Post:
# 7  
Old 06-02-2012
If you don't want to rely on properly formatted code, here is a script that keeps track of left and right parentheses counts to do this

Code:
#!/bin/ksh
count_prev=0
count=0
mask=false
while read line
do
  if [ `echo $line | grep -cw HOME` -eq 1 ]; then
    mask=true
    count_l=0
    count_r=0
    count=0
  fi  
  let count_l=count_l+`echo $line | grep -c '('`
  let count_r=count_r+`echo $line | grep -c ')'`
  count=$(expr $count_l - $count_r)
  if [ $mask == "false" ]; then
    echo $line
  elif [ $count_prev -eq 0 -a $count -eq 0 ]; then
    echo $line
    mask=false
  fi  
  count_prev=$count
done < in_file

This User Gave Thanks to jawsnnn 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

How to remove answers and explanation parts from a text file with lots of questions.?

Hi, I have a text file with thousands of questions in it. Each question (multiple lines) with multiple choice options, Answer and Explanation (optional). I need to delete Answer & explanation parts for all Questions and insert a blank line before net question. Each question starts with NO. I... (4 Replies)
Discussion started by: prvnrk
4 Replies

2. UNIX for Dummies Questions & Answers

Deleting Block of Text from a File

Hi I am looking for the way to delete the block of data for example original file line1 line2 line3 line4 line5 input file line2 line3 original file should contain line1 line4 line5 (3 Replies)
Discussion started by: rakeshkumar
3 Replies

3. UNIX for Dummies Questions & Answers

Deleting specific rows from a text file

How do I go about deleting specific rows from a text file (given row number)? (5 Replies)
Discussion started by: evelibertine
5 Replies

4. UNIX for Dummies Questions & Answers

Help with deleting characters from text file

I have a text file that looks like this: I want to delete the last character of first column in all rows so that my output looks like this: Thanks a lot! (1 Reply)
Discussion started by: evelibertine
1 Replies

5. UNIX for Dummies Questions & Answers

Deleting all instances of a certain character from a text file

In my command prompt I did: sed 's/\://' mytextfile > newtextfile But it only deleted the first instance of : in each line when some lines have multiple : appearing in each one. How can I delete all the : from the entire file? (1 Reply)
Discussion started by: guitarscn
1 Replies

6. Shell Programming and Scripting

How can i break a text file into parts that occur between a specific pattern

How can i break a text file into parts that occur between a specific pattern? I have text file having various xml many tags like which starts with the tag "<?xml version="1.0" encoding="utf-8"?>" . I have to break the whole file into several xmls by looking for the above pattern. All the... (9 Replies)
Discussion started by: abhinav192
9 Replies

7. Shell Programming and Scripting

deleting certain parts of a line in perl

I have a filr data.txt. Its contents are Available labels (* indicates activated, I indicates installed, R idicates running): abc-3.0.3 def-3.0.4 xyz-3.1.2-1.0 I want to delete " Available labels (* indicates activated, I indicates installed, R idicates running):" and... (3 Replies)
Discussion started by: lassimanji
3 Replies

8. UNIX for Dummies Questions & Answers

Deleting lines in text file

Hi everyone, I have text files that I want to delete lines from. I have searched through this forum for quite some time and found examples of both awk and sed. Unfortunately, I was not able to successfully do what I want. Well to some extent. I did manage to delete the first 15 lines from each... (5 Replies)
Discussion started by: hern14
5 Replies

9. Shell Programming and Scripting

Deleting text block in file

Need to delete a text block inside a file, that is marked with a start and an end pattern. Eg do not delete not delete <tag1> delete everything here here and here and here... <tag2> do not delete do not delete.... Believe sed is able to do this job but don't get it working. ... (1 Reply)
Discussion started by: andre123
1 Replies

10. Shell Programming and Scripting

Deleting text from a file

Hi, In my korn shell script, I want to delete some particular text from a certain file...How can this be done? Is the below right? ed $NAMES << EOF echo "" > /dev/null echo "${x} = " > /dev/null echo "name = " > /dev/null echo "adress = " > /dev/null w q EOF (1 Reply)
Discussion started by: n8575
1 Replies
Login or Register to Ask a Question