Supondo que sua implementação de grep suporta tanto o -w quanto o -E , seu grep e sed pipeline só extrairia e comentaria as linhas que não continham HP ou %código%. As linhas que deveriam ser deixadas como estão não serão transferidas para o novo arquivo.
Como HP-UX CXC parece não oferecer suporte à alteração com sed em expressões regulares, o que significa que | não funciona, você pode aplicar algo assim ao arquivo:
sed -e '/CXC/b' -e '/HP/b' -e 's/^/# /' crontab.txt >crontab-new.txt
O comando /CXC|HP/!s/^/# / torna a ramificação b no final do script de edição se o padrão for encontrado na linha atual. Ele age como um comando "imprimir linha e continuar com a próxima linha" aqui.
Se nenhuma das duas primeiras expressões for processada, a linha será comentada pela última expressão.
O arquivo sed , criado acima, conterá o seguinte conteúdo, dado o exemplo da pergunta:
58 18 * * 1-5 /usr/home/script.sh REP CXC BS TODAY all 1>/dev/null 2>/dev/null
# 00 19 * * 1-5 /usr/home/script.sh DSC DXC BUS TODAY all 1>/dev/null 2>/dev/null
01 19 * * 1-5 /usr/home/script.sh REP HP SNT TODAY all 1>/dev/null 2>/dev/null
03 19 * * 1-5 /usr/home/script.sh DSC CXC SNT TODAY all 1>/dev/null 2>/dev/null
32 10 * * 1-5 /usr/home/script.sh Check CXC OD TODAY MGLA 1>/dev/null 2>/dev/null
32 12 * * 1-5 /usr/home/script.sh Sca CXC OD TODAY all "01 03 05 07 08 10 12 17 18 19 31 32 33 37 42 50 53 55 57 84 89 93" 1>/dev/null 2>/dev/null
# 01 19 * * 1-5 /usr/home/script.sh REP HK SNT TODAY all 1>/dev/null 2>/dev/null
# 01 19 * * 1-5 /usr/home/script.sh REP RAM SNT TODAY all 1>/dev/null 2>/dev/null
# 01 19 * * 1-5 /usr/home/script.sh REP SAB SNT TODAY all 1>/dev/null 2>/dev/null