- ベストアンサー
改行コードの違いとLFのみの場合の削除方法について
- 改行コードにはLF(ラインフィード)とCR(キャリッジリターン)があります。通常、エディタで改行した場合はCR+LFが設定されますが、混在している場合はLFのみを削除したいと思っています。
- 現在使用しているエディタ「TeraPad」は改行コードの違いを認識できず、LFのみの場合も削除できません。EmEditorやVxEditorも試しましたが、同様の問題がありました。
- 改行コードの違いを認識でき、かつLFのみの場合を削除できるエディタや方法はあるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
秀丸エディタでは、バイナリモードでも開けるので、0A だけの削除が出来ます。 1.「その他-動作環境-ファイル」で "「バイナリモードで開く」を使う" を ON 2.「ファイル-開く」で「バイナリモードで開く」を ON にしてファイルを開く 3.「検索-置換」で「正規表現」を ON にして、 0D,(?!(\n0A|0A)) (↑先頭の空白無視)を検索文字列として空文字に置換
その他の回答 (2)
- foobar
- ベストアンサー率44% (1423/3185)
エディタというよりも、元のファイルを作成したOSによる(エディタはOSに合わせてファイルの改行コードを吐き出している)ように思います。 CRCFはそのまま置いておいて、LF単体で出てきた時だけ取り去りたいなら、バイナリーエディタを使って、検索条件で「CR以外の文字+LF」を「CR以外の文字」に置換するような検索置換設定をすればよさそうに思います。 (これくらいなら、自分でプログラムを組んでもそんなに難しくはなさそうな感じがします。)
お礼
foobar様、ご回答ありがとうございました! ご回答いただいた「「CR以外の文字+」のやり方が分かっていなかったのですが、admiral_ya様のご回答から、正規表現で不一致の検索ができると判明し、 (?<!0D),0A と記載し対応しました。 最悪、捨てプロを作らないと…と思っていたところでした。 (1回しか使わないので。) ありがとうございました!
- Tacosan
- ベストアンサー率23% (3656/15482)
目的が見えないのですが, たいていのバイナリエディタで可能だと思います.
補足
Tacosan様、ご回答ありがとうございます。 目的は、本文に記載の通り、 「改行コードが混在しているファイルがあり、LFのみの場合はLF(改行)を削除したい」 ということです。 「TeraPad」でも「EmEditor」でも「VxEditor」でもCR+LFとLFの違いを認識しないため、 LFを削除する、ということができなかったのです。 バイナリエディタで削除、も考えましたが、 LF(0A)を検索すると、CR+LF(0D0A)の「0A」も検索されてしまうので、 削除ができませんでした。 バイナリエディタでどのようにすればよいか、教えていただけますでしょうか?
お礼
admiral_ya様、ご回答ありがとうございます! admiral_ya様のご回答よりヒントを得まして、 (?<!0D),0A を検索、空文字に置換することで対応できました! ありがとうございました!