sed to delete character 0 only when it's on its own?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed to delete character 0 only when it's on its own?
# 1  
Old 08-25-2010
sed to delete character 0 only when it's on its own?

Hi all

I am trying to get my head around doing the following....

I have an input field that could contain either a number a blank field or a whitespace field.

What I want to do is delete a 0 (zero) if it's on its own or leading the number.

So:-

\t0 delete the zero
0 delete the zero
0\t delete the zero

10 do NOT delete the zero
\t10 do NOT delete the zero

Please do not just post a response showing a solution without explaining how it works else I can't learn for next time.

Thanks in advance.

---------- Post updated at 12:05 PM ---------- Previous update was at 12:03 PM ----------

Sorry I should add I want to do this using just sed for reasons too boring to explain here.
# 2  
Old 08-25-2010
Quote:
Originally Posted by Bashingaway
Sorry I should add I want to do this using just sed for reasons too boring to explain here.
But we are interested, it could be homework....Smilie
# 3  
Old 08-25-2010
Quote:
Originally Posted by Franklin52
But we are interested, it could be homework....Smilie
It's actually an input field from a SQL script pulling the field from a mythTV database. The input field is identifying the episode number of total episodes. However as the input field is being sent as part of an EIT packet by the originating broadcaster you can't guarantee the format, thus the need to delete either 0 or whitespace etc.....

It's not homework, it's a script I'm working on as a process of trying to learn sed.

OK?
# 4  
Old 08-25-2010
Try this:
Code:
sed 's/^\([ 	]*\)0\(.*\)/\1\2/' file

Within the square blocks there are a space and a tab. Type the tab character as <Ctrl>V <TAB>.
# 5  
Old 08-25-2010
Code:
# cat infile
 
this is tab and zero    0 delete this zero
this is one zero 0 delete this zero
this is zero and tab 0  delete this zero
 
10 no delete this
        10 no delete this

Code:
# sed 's/\(.*\)\b0\(.*\)/\1\2/' infile
 
this is tab and zero     delete this zero
this is one zero  delete this zero
this is zero and tab    delete this zero
 
10 no delete this
        10 no delete this

# 6  
Old 08-25-2010
Try this -

sed -e 's/[ ]\{1,\}0/ /g' file

Within the square blocks there are a space and a tab. Type the tab character as <Ctrl>V <TAB>.
# 7  
Old 08-25-2010
Quote:
Originally Posted by Bashingaway
...
What I want to do is delete a 0 (zero) if it's on its own or leading the number.

So:-

\t0 delete the zero
0 delete the zero
0\t delete the zero

10 do NOT delete the zero
\t10 do NOT delete the zero
Here's another one -

Code:
$
$
$ cat f1
this is tab and zero    0 delete this zero
this is one zero 0 delete this zero
this is zero and tab 0  delete this zero
0 this line has a leading zero
10 no delete this
        10 no delete this
this line has a trailing zero 0
$
$
$ sed 's/\b0\b//g' f1
this is tab and zero     delete this zero
this is one zero  delete this zero
this is zero and tab   delete this zero
 this line has a leading zero
10 no delete this
        10 no delete this
this line has a trailing zero
$
$

tyler_durden
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Count specific character of a file in each line and delete this character in a specific position

I will appreciate if you help me here in this script in Solaris Enviroment. Scenario: i have 2 files : 1) /tmp/TRANSACTIONS_DAILY_20180730.txt: 201807300000000004 201807300000000005 201807300000000006 201807300000000007 201807300000000008 2)... (10 Replies)
Discussion started by: teokon90
10 Replies

2. Shell Programming and Scripting

sed searches a character string for a specified delimiter character, and returns a leading or traili

Hi, Anyone can help using SED searches a character string for a specified delimiter character, and returns a leading or trailing space/blank. Text file : "1"|"ExternalClassDEA519CF5"|"Art1" "2"|"ExternalClass563EA516C"|"Art3" "3"|"ExternalClass305ED16B8"|"Art9" ... ... ... (2 Replies)
Discussion started by: fspalero
2 Replies

3. Shell Programming and Scripting

How to delete a character using sed and or awk?

Hi, 1/ i have file test.txt 1 Jul 28 08:35:29 2014-07-28 Root::UserA 1 Jul 28 08:36:44 2014-07-28 Root::UserB i want to delete the seconds of the file, and the Root:: and the output will be: 1 Jul 28 08:35 2014-07-28 UserA 1 Jul 28 08:36 2014-07-28 UserB 2/i have another file test2.txt:... (8 Replies)
Discussion started by: fxsme
8 Replies

4. Shell Programming and Scripting

Sed: delete on each line before a character and after a character

Hi there, A total sed noob here. Is there a way using sed to delete everything before a character AND after another character on each line in a file? The deletion should also delete the indicating characters(here: an opening and a closing parenthesis). The original file would look like... (3 Replies)
Discussion started by: bnbsd
3 Replies

5. Shell Programming and Scripting

sed or awk delete character in the lines before and after the matching line

Sample file: This is line one, this is another line, this is the PRIMARY INDEX line l ; This is another line The command should find the line with “PRIMARY INDEX” and remove the last character from the line preceding it (in this case , comma) and remove the first character from the line... (5 Replies)
Discussion started by: KC_Rules
5 Replies

6. Shell Programming and Scripting

Delete character in determinate position with sed/awk

Hello. I'm trying to delete one character in determinate position. Example: qwEtsdf123Ecv34 <delete character in positión 3> Result: qwtsdf123Ecv34 Plase, help me. Thanks (4 Replies)
Discussion started by: maria_florencia
4 Replies

7. Shell Programming and Scripting

In Sed how can I replace starting from the 7th character to the 15th character.

Hi All, Was wondering how I can do the following.... I have a String as follows "ACCTRL000005022RRWDKKEEDKDD...." This string can be in a file called tail.out or in a Variable called $VAR2 Now I have another variable called $VAR1="000004785" (9 bytes long), I need the content of... (5 Replies)
Discussion started by: mohullah
5 Replies

8. UNIX for Dummies Questions & Answers

Delete between 10th character and 20th character

Hi, I have a .txt and I need to delete the characters betwwen the 10th and 20th... How can I do that... I need to do somethink like these: %s/I don't know how to define a range between 10th and 20th character//g Can you help me... If I want the 10 first characters i do this:... (2 Replies)
Discussion started by: nuno_fbo
2 Replies

9. Shell Programming and Scripting

how to delete space character with sed

hi all, i want to delete a space character in word on unix script with command sed like : #dia n result: #dian is there anyone will help me ? regards, cahyo (1 Reply)
Discussion started by: cahyo3074
1 Replies

10. Shell Programming and Scripting

Use sed to delete a character

I built a 12 million record file and made a mistake, one field is 1 character too long. The record is 40 bytes and ends always in 999. I am trying to delete the 37 character in each record. Is this possible without doing a cut and paste. (1 Reply)
Discussion started by: bthomas
1 Replies
Login or Register to Ask a Question