- ベストアンサー
windowsでの改行削除(一万行単位)
- 5万行近くあるテキストの改行を全てなくし、END文字の部分だけ改行を残したいです。
- サクラエディタやエクセルでの処理はフリーズしてしまうため、別の方法を探しています。
- ネットに繋がっていないため、フリーソフトは使用できません。dosやvbaなどでの解決方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
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字くらいまでかも。
その他の回答 (4)
- asciiz
- ベストアンサー率70% (6825/9705)
私なら、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)
ファイルをテキストエディタで小さく分割します。この時ファイル名は連番にしておく。 小さくしたファイルをエディタの置換で変換します。 全てのファイルの変換が完了したなら、コマンドプロンプトのcopyコマンドでファイルを連結します。 copy 001.txt+002.txt+ ・・・+099.txt all.txt とすれば出来上がりです。
- korokoro17
- ベストアンサー率55% (414/743)
perlあるいはsedを使ってはどうでしょう。
- ryo_ Deathscythe(@Deathscythe)
- ベストアンサー率14% (515/3615)
置換機能でダメならもう手作業しかないのでは? 範囲指定で無理ない範囲を一気に「DEL」
お礼
素早い対応ありがとうございます! おかげでDOSれました‼︎ 本当に助かりました。 迅速で的確な対応の為、ベストアンサーとさせて頂きます。