改行コード(CR, LF, CR+LF)が混在しているテキストファイルで、改行コードを変更せずに、行単位に特定の文字列を置換できるツールってある?

sedのテキストモードだと、改行が変更されるし、
sedのバイナリモードだと、行単位に置換できない(特定の条件を満たした行だけに適用出来ない)し、
うまくできないんだよね。

Linux以外で動くツールでもいいんだけど。