Skip to main content
1 of 5
lgeorget
  • 14.4k
  • 2
  • 44
  • 64
sed -i -E "s/(<username>.+)name(.+<\/username>)/\1something\2/" file.xml 

This is, I think, what you're looking for.

Explanation:

  • parenthesises in the first part define groups (strings in fact) that can be reused in the 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)
  • -E enables extended regular expressions (needed for + and grouping).
lgeorget
  • 14.4k
  • 2
  • 44
  • 64