Perhaps his file has strings, with slashes, other than dates? Pathnames perhaps.
On November 15, 2016 10:53:54 AM PST, Robert Citek <[email protected]> wrote: >On Tue, Nov 15, 2016 at 10:50 AM, Robert Citek <[email protected]> >wrote: >> On Tue, Nov 15, 2016 at 10:30 AM, Rich Shepard ><[email protected]> wrote: >>> Trying to change the date format from a forward slash (/) to a >dash (-). >>> There's a syntax error in my sed script: "file >change-date-format.sed line >>> 6: invalid reference \3 on `s' command's RHS" and I'm not seeing >why. Here's >>> the script: >>> >>> #!/usr/bin/sed >>> # >>> # Change date format from / to -. >>> >>> s/[0-9]\{4\}\/[0-9]\{2\}\/[0-9]\{2\}/\1-\2-\3/g >>> >>> Please show me what I've done incorrectly here. >> >> Example input and sample expected data would be helpful. But if I >> were to guess (which is usually a really bad idea), your input date >> string looks like this: >> >> 1996/03/10 >> >> and you want your output data to look like this: >> >> 1996-03-10 >> >> If that's correct (highly unlikely because I am guessing), then this >would work: >> >> $ <<< '1996/03/10' tr / - >> 1996-03-10 >> >> But if you insist on sed: >> >> $ <<< '1996/03/10' sed -e 's#/#-#g' >> 1996-03-10 >> >> Or insist on sed using groups: >> >> $ <<< '1996/03/10' sed -e >> 's#\([0-9]\{4\}\)\/\([0-9]\{2\}\)\/\([0-9]\{2\}\)#\1-\2-\3#g' >> 1996-03-10 >> >> or >> >> $ <<< '1996/03/10' sed -re >> 's#([0-9]\{4\})\/([0-9]\{2\})\/([0-9]\{2\})#\1-\2-\3#g' >> 1996/03/10 > >Oops! Corrected: > >$ <<< '1996/03/10' sed -re >'s#([0-9]{4})/([0-9]{2})/([0-9]{2})#\1-\2-\3#g' >1996-03-10 > >This is why you want to KISS -- use tr, if possible. > >Regards, >- Robert >_______________________________________________ >PLUG mailing list >[email protected] >http://lists.pdxlinux.org/mailman/listinfo/plug -- Sent from my Android device with K-9 Mail. Please excuse my brevity. _______________________________________________ PLUG mailing list [email protected] http://lists.pdxlinux.org/mailman/listinfo/plug
