マジわからん。
仮に\nがCR,LFだった場合 s/[\n]//g; で 単独のCRもLFも消えるのか?
なら、勉強になったよ。

でもな、だったら[\r\f]としないのはなぜ?なぜ¥nを使う?
dosでは [\x0D\x0D\x0A] となって、なんだか余分じゃないか?

で、そもそもの発端だが「 tr/\x0D\x0A//d; と等価でない」とは?