Вы можете использовать это sed
, чтобы убедиться, что у нас нет #
в начале строки:
sed '/MATCH1/,/MATCH2/ s/^[^#]/#&/' file
#MATCH1
#command 1
#command 2
#command 3
#MATCH2
Обратите внимание, что это соответствует только непустым строкам между заданными ключевыми словами. В качестве альтернативы вы можете использовать это sed
:
sed '/MATCH1/,/MATCH2/ { /^#/! s/^/#/; }' file