• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:windowsでの改行削除(一万行単位))

windowsでの改行削除(一万行単位)

このQ&Aのポイント
  • 5万行近くあるテキストの改行を全てなくし、END文字の部分だけ改行を残したいです。
  • サクラエディタやエクセルでの処理はフリーズしてしまうため、別の方法を探しています。
  • ネットに繋がっていないため、フリーソフトは使用できません。dosやvbaなどでの解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

dosってみたよー。 @Echo Off SetLocal EnableDelayEdexpansion Set InFile=hoge.txt Set OutFile=hogehoge.txt Set Count=1 Set CatCnt=0 Echo [%Date% %Time%] 処理を開始します。 For /F %%i In ( %InFile% ) Do ( Echo [%Date% %Time%] !Count!行目を処理中 Set HOGE=!HOGE!%%i If !HOGE:~-3!==END ( Echo [%Date% %Time%] !Count!行目でENDが見つかりました。改行します。 Echo !HOGE!>>%OutFile% Set HOGE= Set CatCnt=0 ) Else ( Set /A CatCnt=!CatCnt!+1 >NUL ) Set /A Count=!Count!+1 ) If /I %CatCnt% GTR 0 Echo %HOGE%>>%OutFile% Echo [%Date% %Time%] 最終行まで処理が終わりました。 Pause>NUL EndLocal Exit /B 0 ↑でバッチファイル作ってInFile(入力ファイル)とOutFile(出力ファイル)を書き換えて実行ドン。 環境依存で動かないかも。あと1行が2000字くらいまでかも。

sigesigeo1919
質問者

お礼

素早い対応ありがとうございます! おかげでDOSれました‼︎ 本当に助かりました。 迅速で的確な対応の為、ベストアンサーとさせて頂きます。

その他の回答 (4)

  • asciiz
  • ベストアンサー率70% (6825/9705)
回答No.5

私なら、SEDか、perlでやりますかね… sed -e "s/\n//" -e "s/END$/END\n/" <入力ファイル >出力ファイル または perl -np -e "s/\n//;" -e "s/END$/END\n/" <入力ファイル >出力ファイル これでできます。 一行ずつ処理しては出力するので、行数・ファイルサイズに関係なく処理できます。 >pcはネットに繋がっていない為、フリーソフトの類は使用できないです。 それはポリシー上フリーソフトを使ってはいけないのか、単にダウンロードできないというだけか、どちらでしょうか? インストーラをダウンロードして、USBメモリとかで持ってくれば、オフラインのパソコンにもインストール可能です。 Perl インストーラのダウンロード → http://www.activestate.com/activeperl/downloads (約30MB) SEDの方は、Cygwinとか入れると、ついてきます。 →http://www.cygwin.com/

  • tsunji
  • ベストアンサー率20% (196/958)
回答No.3

ファイルをテキストエディタで小さく分割します。この時ファイル名は連番にしておく。 小さくしたファイルをエディタの置換で変換します。 全てのファイルの変換が完了したなら、コマンドプロンプトのcopyコマンドでファイルを連結します。 copy 001.txt+002.txt+ ・・・+099.txt all.txt とすれば出来上がりです。

回答No.2

perlあるいはsedを使ってはどうでしょう。

回答No.1

置換機能でダメならもう手作業しかないのでは? 範囲指定で無理ない範囲を一気に「DEL」

関連するQ&A

専門家に質問してみよう