sed -i -E "s/(<username>.+)name(.+<\/username>)/\1something\2/" file.xml This is, I think, what you're looking for.
Explanation:
- parentheses in the first part define groups (strings in fact) that can be reused in the second part
\1,\2, etc. in the second part are references to the i-th group captured in the first part (the numbering starts with 1)-Eenables extended regular expressions (needed for+and grouping).-ienables edit"in-place" file in placeedit mode