Am 02. Jul, 2013 schwätzte Dazed_75 so:
moin moin,
> I have some C code with lines that look like:
> stuff1; stuff2; spPtr+=stuff3; maybesomestuff4
>
> I can find only the lines of interest using grep spPtr+=foo.c but I
> wondered if I could easily use sed to convert those lines to
> stuff1; spPtr+=stuff3; stuff2; maybesomestuff4
>
> so basically with ; as a delimiter, swapping group 2 and 3 but only for
> those lines containing "spPtr+="
>
> Any ideas?
$ echo "1; 2; 3; 4;" | sed -re 's/^([^;]+;)([^;]+;)([^;]+;)/\1\3\2/'
1; 3; 2; 4;
$
Combining the 3 capture groups into one is left as an exercise for the
reader :).
Obviously, if any of the fields contain a ;, then that match won't do what
you're wanting on that line.
ciao,
der.hans
--
# http://www.LuftHans.com/ http://www.LuftHans.com/Classes/
# Wer bereit ist, grundlegende Freiheiten aufzugeben, um sich
# kurzfristige Sicherheit zu verschaffen, der hat weder Freiheit
# noch Sicherheit verdient. -- Benjamin Franklin (1706 - 1790)
---------------------------------------------------
PLUG-discuss mailing list -
PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss