Dentro de [...] , a barra invertida não é especial. [\[] corresponde à barra invertida e [ 1 .
Se você quiser incluir o caractere ] no conjunto, verifique se ele é o primeiro: []X] corresponde a ] ou X , enquanto [X]] corresponde a X seguido de ] (e [X\]] corresponderia a X ou \ seguido de ] ). Para excluí-lo, ele precisa estar logo após ^ : [^]X] ser qualquer caractere, mas ] ou X .
Então, no seu exemplo:
sed 's/[]*\#$@~!&*()[]//g'
1 Há algumas exceções para isso com o GNU sed quando o modo de conformidade POSIX não foi ativado (via $POSIXLY_CORRECT ou --posix ) e é por isso que, para compatibilidade com essa implementação, quando você precisar da barra invertida para ser incluída no conjunto, é melhor escrevê-la como [\] .