fork download
  1. #!/bin/bash
  2.  
  3. s='title="alpha" lorem ipsum lorem ipsum name="beta" Morbi posuere metus purus name=delta Curabitur ullamcorper finibus consectetur name=sigma'
  4.  
  5. # 1st occurrence
  6. perl -pe 's/(title=)"?[^"\s]*"?((?:.*?\h+name=){0}.*?)\h+name="?([^"\s]+)"?/$1"$3"$2/' <<< "$s"
  7.  
  8. echo
  9.  
  10. # 2nd occurrence
  11. perl -pe 's/(title=)"?[^"\s]*"?((?:.*?\h+name=){1}.*?)\h+name="?([^"\s]+)"?/$1"$3"$2/' <<< "$s"
  12.  
  13. echo
  14. # 3rd occurrence
  15. perl -pe 's/(title=)"?[^"\s]*"?((?:.*?\h+name=){2}.*?)\h+name="?([^"\s]+)"?/$1"$3"$2/' <<< "$s"
  16.  
Success #stdin #stdout 0.01s 5344KB
stdin
Standard input is empty
stdout
title="beta" lorem ipsum lorem ipsum Morbi posuere metus purus name=delta Curabitur ullamcorper finibus consectetur name=sigma

title="delta" lorem ipsum lorem ipsum name="beta" Morbi posuere metus purus Curabitur ullamcorper finibus consectetur name=sigma

title="sigma" lorem ipsum lorem ipsum name="beta" Morbi posuere metus purus name=delta Curabitur ullamcorper finibus consectetur