回答編集履歴

1 訂正

otn

otn score 70433

2017/11/13 14:42  投稿

まず、`!`は、`'~'`の中や`\`の直後以外では、ヒストリー置換を意味するシェル特殊文字です。
なので、`"`で囲むのでなく`'`で囲むと良いです。
`[`は文字クラス指定の中では特殊文字でないので、`[~]`内のどこに書いても良いです。
ということで、
```Bash
sed -e 's/[][!]//g' test.txt
```
正規表現は、同じ記号でも文脈によって、特殊文字だったり、そのままの文字だったりするので、ややこしいですね。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る