Skip to main content
Requires GNU sed
Source Link
Kusalananda
  • 355.8k
  • 42
  • 735
  • 1.1k

This GNU sed gives the desired result

$ sed 's/\(.\)\(START\|END\)/\1\n\2\n/g' file | \
  sed -ne '/START/,/END/s/_this_//' \
  -ne '/START/,/END/y/as/45/' \
  -ne '/START/,/END/s/modi/\U&/g;p' | \
  sed -z 's/\n\(START\|END\)\n/\1/g'
aomodi3hriq32| ¶³r 0q93aoiSTARTi5_to_be_MODIfied_ENDaqsdofuha23uru| ²23i ii3uhfia
oawpo3<9"§ A hSTART4l5o_need5_MODIfic4tion_ENDqa 032/a237(°1Q"§ >A_this_
START ch4ngeme ENDnot_this_modias

This sed gives the desired result

$ sed 's/\(.\)\(START\|END\)/\1\n\2\n/g' file | \
  sed -ne '/START/,/END/s/_this_//' \
  -ne '/START/,/END/y/as/45/' \
  -ne '/START/,/END/s/modi/\U&/g;p' | \
  sed -z 's/\n\(START\|END\)\n/\1/g'
aomodi3hriq32| ¶³r 0q93aoiSTARTi5_to_be_MODIfied_ENDaqsdofuha23uru| ²23i ii3uhfia
oawpo3<9"§ A hSTART4l5o_need5_MODIfic4tion_ENDqa 032/a237(°1Q"§ >A_this_
START ch4ngeme ENDnot_this_modias

This GNU sed gives the desired result

$ sed 's/\(.\)\(START\|END\)/\1\n\2\n/g' file | \
  sed -ne '/START/,/END/s/_this_//' \
  -ne '/START/,/END/y/as/45/' \
  -ne '/START/,/END/s/modi/\U&/g;p' | \
  sed -z 's/\n\(START\|END\)\n/\1/g'
aomodi3hriq32| ¶³r 0q93aoiSTARTi5_to_be_MODIfied_ENDaqsdofuha23uru| ²23i ii3uhfia
oawpo3<9"§ A hSTART4l5o_need5_MODIfic4tion_ENDqa 032/a237(°1Q"§ >A_this_
START ch4ngeme ENDnot_this_modias

deleted 11 characters in body
Source Link

This sed gives the desired result

$ sed 's/\(.\)\(START\|END\)/\1\n#\2\n\1\n\2\n/g' file | \
  sed -ne '/#*STARTSTART/,/#ENDEND/s/_this_//' \
  -ne '/#*STARTSTART/,/#ENDEND/y/as/45/' \
  -ne '/#*STARTSTART/,/#ENDEND/s/modi/\U&/g;p' | \
  sed -z 's/\n#\\n\(START\|END\)\n/\1/g'
aomodi3hriq32| ¶³r 0q93aoiSTARTi5_to_be_MODIfied_ENDaqsdofuha23uru| ²23i ii3uhfia
oawpo3<9"§ A hSTART4l5o_need5_MODIfic4tion_ENDqa 032/a237(°1Q"§ >A_this_
START ch4ngeme ENDnot_this_modias

This sed gives the desired result

$ sed 's/\(.\)\(START\|END\)/\1\n#\2\n/g' file | \
  sed -ne '/#*START/,/#END/s/_this_//' \
  -ne '/#*START/,/#END/y/as/45/' \
  -ne '/#*START/,/#END/s/modi/\U&/g;p' | \
  sed -z 's/\n#\(START\|END\)\n/\1/g'
aomodi3hriq32| ¶³r 0q93aoiSTARTi5_to_be_MODIfied_ENDaqsdofuha23uru| ²23i ii3uhfia
oawpo3<9"§ A hSTART4l5o_need5_MODIfic4tion_ENDqa 032/a237(°1Q"§ >A_this_
START ch4ngeme ENDnot_this_modias

This sed gives the desired result

$ sed 's/\(.\)\(START\|END\)/\1\n\2\n/g' file | \
  sed -ne '/START/,/END/s/_this_//' \
  -ne '/START/,/END/y/as/45/' \
  -ne '/START/,/END/s/modi/\U&/g;p' | \
  sed -z 's/\n\(START\|END\)\n/\1/g'
aomodi3hriq32| ¶³r 0q93aoiSTARTi5_to_be_MODIfied_ENDaqsdofuha23uru| ²23i ii3uhfia
oawpo3<9"§ A hSTART4l5o_need5_MODIfic4tion_ENDqa 032/a237(°1Q"§ >A_this_
START ch4ngeme ENDnot_this_modias

Source Link

This sed gives the desired result

$ sed 's/\(.\)\(START\|END\)/\1\n#\2\n/g' file | \
  sed -ne '/#*START/,/#END/s/_this_//' \
  -ne '/#*START/,/#END/y/as/45/' \
  -ne '/#*START/,/#END/s/modi/\U&/g;p' | \
  sed -z 's/\n#\(START\|END\)\n/\1/g'
aomodi3hriq32| ¶³r 0q93aoiSTARTi5_to_be_MODIfied_ENDaqsdofuha23uru| ²23i ii3uhfia
oawpo3<9"§ A hSTART4l5o_need5_MODIfic4tion_ENDqa 032/a237(°1Q"§ >A_this_
START ch4ngeme ENDnot_this_modias