On Sun, Feb 12, 2017 at 08:06:28PM -0500, bruce wrote:
Thanks for the delete replies..
Got a quick sed question now..
head -2 sed.dat
want to simply truncate/search/replace the end of each line starting
with the ","
the following isn't working
sed -i 's/\,+\$//' sed.dat
sed -i 's/\,+$//' sed.dat
I'm sure it's simple/trivial...
Several problems. The sed's I know don't use extended RE syntax
and '+' is a repetition character of extended RE. Some sed's
might allow its use with the '-r' option. And maybe there are
some sed's that do use extended RE.
Comma is not typically a special character, so no need to escape.
In pattern matching by the shell, the '*' repetition character
does not reference the preceeding character. RE repetition
characters (* in basic and + and ? in extended) always refer
to repetitions of the preceeding character. Thus your pattern
(if and extended RE) would be looking for a string of commas,
NOT one comma followed by a string of any char.
Try something like "sed -r -i 's/,[0-9]+$//'".
or "sed -i 's/,[0-9]*$//'" or if uncertain they
will be digits, but certain they will not be
commas (i.e. you want to delete the last comma
onward) try "sed -i 's/,[^,]*$//'
Jon H. LaBadie jonfu(a)jgcomp.com