ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I'm trying to match 0000-00-00 00:00:00 then surround it with quotes using sed
sed -i 's/\(\d{4}\-\d{2}\-\d{2} \d{2}\:\d{2}\:\d{2}\)/"\1"/g' regExTest
I've tried a thousand variations can't seem to get it to work, Even if I simplify it just to see if I can get it going with something like 's/\(\d{4}\)/\1'/g' nothing, i'm baffled.
I haven't double-checked your syntax, but if you're using {4} and {2} and the like, you're using extended regular expressions. So you need to use the -r switch in there:
I'm actually working on two Slackware distributions here: my wife's, and my own. My wife's is Slackware 11; my own is Slackware 9.1. My system has an older version of sed, which doesn't even have the -i and -r switches. My wife's system has both, so I've been using hers to pursue your question.
But I don't have access to my wife's system at this point, so help me out here.
It looks as though the regular expression isn't matching. What does "man sed" on your system say about regular expressions? (Search the whole thing for "reg".)
That's pretty much what I had to do, I ended up just going 's/\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\)/"\1"/g' although your way seems much more eligant, it only saves a few charectors. I think i must have been looking at different versons GNU does not like the \d switch for digits. Thanks for the reply guys, linuxquestions.org is good because of it.
The qualifier, { minimum, maximum }, will require a different syntax depending on old or new version of sed, and on whether "-r" is specified on new versions.
% ./s1
plain braces, basic re
xxxx
escaped braces, basic re
1234
plain braces, extended re
1234
escaped braces, extended re
xxxx
Basically, the "-r" reverses the specialness of the "{}". I think you'll need the form which uses "\" prior to the "{}" characters on the old version of sed.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.