•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the Shell Scripting section within the Software Development category of DaniWeb, a massive community of 425,928 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 1,671 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Shell Scripting advertiser: Programming Forums
Views: 1559 | Replies: 3
![]() |
•
•
Join Date: Jun 2006
Location: UK (Bristol)
Posts: 225
Reputation:
Rep Power: 3
Solved Threads: 1
Hello everyone. I need to write a Bash script to remove blocks of text from a given file. The idea is, the text to be removed will be marked by appearing between certain delimiter characters i.e.
Could someone tell me the kind of commands I need to research to do stuff with text like this? I can work out the rest. Any help appriciated.
Steven.
Here's some text and ~this bit gets removed~, where tilda is the delimiter.
Could someone tell me the kind of commands I need to research to do stuff with text like this? I can work out the rest. Any help appriciated.
Steven.
Hello, you're through to Steven on the BT Business technical help desk. Could I take your broadband telephone number please?
•
•
Join Date: May 2004
Posts: 177
Reputation:
Rep Power: 5
Solved Threads: 9
You need to use sed, and you have to learn about regular expressions.
based on your data a very specific (not generalized) solution is:
based on your data a very specific (not generalized) solution is:
$> echo "Here's some text and ~this bit gets removed~, where tilda is the delimiter." |read var $> echo $var Here's some text and ~this bit gets removed~, where tilda is the delimiter. $> echo $var | sed 's/~[A-Za-z ]*.~//1' Here's some text and , where tilda is the delimiter.
•
•
Join Date: Apr 2006
Posts: 140
Reputation:
Rep Power: 3
Solved Threads: 26
•
•
•
•
Could someone tell me the kind of commands I need to research to do stuff with text like this? I can work out the rest. Any help appriciated.
Tools such as sed/awk/perl are used for text processing. they make use of regular expressions alot. So you need to research on how regular expressions work. Text processing can also be done without regular expressions. If you have Python on your machine, here's a simple way to do what you want.
indices=[] #define array list to keep "~" indexes s = "Here's some text and ~this bit gets removed~, where tilda is the delimiter." for num,ch in enumerate(s): if ch == "~": indices.append(num) s = list(s) #turn s into a list, so we can make changes to it del s[indices[0]: indices[1]+1] print ''join(s)
•
•
Join Date: Jan 2007
Posts: 10
Reputation:
Rep Power: 2
Solved Threads: 0
If your needs are more complicated, you can use fancier tools like perl or python, or if your needs are fairly simple, sed will probably fit your needs just fine.
Take your example, you have a file "input.txt" with the text you posted, and you want to strip of it the un-wanted text. You can do this with a single line of sed command:
And you will be left with the "clean" version of your input.txt, with the text removed. Look up "regular expression" if you do a lot of pattern matching, it will help you a lot.
-Josh
www.qbangsolutions.com
Take your example, you have a file "input.txt" with the text you posted, and you want to strip of it the un-wanted text. You can do this with a single line of sed command:
$ sed -ie 's/~[A-Za-z ]*.~//g' input.txt
And you will be left with the "clean" version of your input.txt, with the text removed. Look up "regular expression" if you do a lot of pattern matching, it will help you a lot.
-Josh
www.qbangsolutions.com
![]() |
•
•
•
•
•
•
•
•
DaniWeb Shell Scripting Marketplace
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
- A quick question about "rank" (DaniWeb Community Feedback)
- Quick Question: Is J# the same thing as Java? (Java)
- A quick question (Game Development)
- quick question (C++)
- text processing? (Java)
- Laptop LCD built into a car? (Monitors, Displays and Video Cards)
Other Threads in the Shell Scripting Forum
- Previous Thread: Spare few minutes
- Next Thread: Big Favour!!!


Linear Mode