Em vi :
:%s/^HOST/#&/
ou
:g/^HOST/s/^/#/
O % no primeiro comando significa "em todo o buffer" e é uma forma breve de dizer 1,$ , ou seja, da primeira linha até a última. & na parte de substituição da substituição será substituído pelo texto inteiro correspondido pelo padrão ( ^HOST ).
O segundo comando aplica a substituição ( s ) a todas as linhas correspondentes a ^HOST usando o comando global ( g ), que vi herdou do editor de linha ed . No segundo caso, apenas inserimos # no início da linha ( ^ ).
com sed :
sed 's/^HOST/#&/' input >output
ou
sed '/^HOST/s/^/#/' input >output
da mesma maneira que em vi ( sed sempre aplica todos os comandos a todas as linhas do fluxo de entrada, por isso não usamos nada como % ou g explicitamente com sed ).