Issue with sed and regular expressions


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Issue with sed and regular expressions
# 1  
Old 07-26-2013
Issue with sed and regular expressions

I have a file, each line has the date and time twice, once at the start of the line, and again half way along. to neaten things up, and to make it easier to read i'm removing one set.

Wasn't as easy as identify the text and remove, as it'd remove both.

So i added some text at the beginning of the line (word, Remove)

removing the time works using:

Code:
sed -r 's/remove [0-9]{2}:[0-9]{2}:[0-9]{2} //' myfile

Removing the date however doesnt work Smilie

Code:
sed -e "s/remove [A-Z][a-z]{3} [0-9]{2}//" myfile

The date is in the format mmm dd and uses title case - ie Jun
I'm assuming my problem is identifying upper and lower case?

help! (please Smilie )

Last edited by Scott; 07-26-2013 at 07:56 AM.. Reason: Code tags
# 2  
Old 07-26-2013
You may need to change

Code:
[A-Z][a-z]{3}

to

Code:
[A-Za-z]{3}

because your statement would look for first [A-Z] and then 3 lowercase characters.


If it does not work then try this:

Code:
sed -e 's/remove [A-Z][a-z][a-z] [0-9][0-9]//' myfile

This User Gave Thanks to krishmaths For This Post:
# 3  
Old 07-26-2013
Last option worked.. strangely it didnt work until i switched

Code:
[0-9]{2}

with
Code:
[0-9][0-9]

no idea why it'd have an issue with that element.
# 4  
Old 07-26-2013
Sometimes you have to escape the curly brackets with a backslash to have the quantifier work:
Code:
$ echo AxxA | sed 's/x{2}/_/'
AxxA
$ echo AxxA | sed 's/x\{2\}/_/'
A_A

# 5  
Old 07-26-2013
"Sometimes" is: sed and grep.
They use Unix RE or BRE.
Unlike egrep and awk: they use ERE.
Perl5 uses ERE plus own extensions.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk or sed or python for regular expressions ?

Linux 6.X environments (RHEL, Oracle Linux ) I could write basic shell scripts in bash. In my spare time, I was planning to learn awk or sed to deal with regular expression tasks I have to deal with. But, I gather that python is gaining popularity these days and I came to know that python has a... (5 Replies)
Discussion started by: John K
5 Replies

2. Shell Programming and Scripting

sed and regular expressions

Hi, There's a bug using JavaDoc that generates an error if a tag <a...> is found in a javadoc comment, which is not a HTML reference. For example this error is produced with generics. I want to insert an space between "<" and "a". Expression is able to find where this happens using find and grep: ... (6 Replies)
Discussion started by: AlbertGM
6 Replies

3. Shell Programming and Scripting

SED regular expressions

Hi, I need to replace <field name="ID">1</field> with <field name="STATION_ID">01</field> how can i do it? (3 Replies)
Discussion started by: noppeli
3 Replies

4. UNIX for Advanced & Expert Users

regular expressions

I have a flat file with the following drug names Nutropin AQ 20mg PEN Cart 2ml Norditropin Cart 15mg/1.5ml I have to extract digits that are before mg i.e 20 and 15 ; how to do this using regular expressions Thanks ram (1 Reply)
Discussion started by: ramky79
1 Replies

5. Shell Programming and Scripting

SED: Print range, exclude regular expressions.

Ok, so I get that: sed -n '/START/,/END/p' file ...will print every line from START to END inclusive, but I don't want to see START or END. Apart from the obious: sed -n '/START/,/END/p' file | grep -v "START" | grep -v "END" ...is there a simpler way of doing this? Thanks as always! (2 Replies)
Discussion started by: cs03dmj
2 Replies

6. Shell Programming and Scripting

sed and regular expressions problem

Hi Im trying to use sed to change some files which I'll describe here: I want to use a regular expression to grab the <body> tag from a document. However, the <body> tag can look different so the regular expression used will take care of that and "include" all types of bodies, in example:... (4 Replies)
Discussion started by: hjalle
4 Replies

7. UNIX for Dummies Questions & Answers

regular expressions variables in sed

I am trying to pass a regular expression variable from a simple script to sed to remove entries from a text file e.g. a='aaaa bbbb cccc ...|...:' then executing sed from the script sed s'/"'$a"'//g <$FILE > $FILE"_"1 my output file is always the same as the input file !! any... (1 Reply)
Discussion started by: Daniel234
1 Replies

8. Shell Programming and Scripting

Regular Expressions

I'm trying to parse RichText to XML. I want to be able to capture everything between the '/par' tag in the RTF but not include the tag itself. So far all I have is this, '.*?\\par' but it leaves '\par' at the end of it. Any suggestions? (1 Reply)
Discussion started by: AresMedia
1 Replies

9. Shell Programming and Scripting

Regular expressions in sed

I'm using sed to alter a parameter file used in another process. Basically, the file is a template containing a few variables which need to be replaced at runtime. The problem is that using sed with filenames that contain the / character causes matches to fail. I've tried doing an escaped... (2 Replies)
Discussion started by: mfreemantle
2 Replies

10. UNIX for Dummies Questions & Answers

Regular expressions in sed

I'm using sed to alter a parameter file used in another process. Basically, the file is a template containing a few variables which need to be replaced at runtime. The problem is that using sed with filenames that contain the / character causes matches to fail. eg:... (3 Replies)
Discussion started by: mfreemantle
3 Replies
Login or Register to Ask a Question