• 締切済み

複数のテキストファイル内の複数行を一括して削除

同一のフォルダにある複数のテキストファイルに対して ************ と ************ で囲まれた部分(複数行)を一括して削除できる方法はありますでしょうか。 ************ と ************ で囲まれた部分は、行数も内容も同じではありません。 例1: ************ 123 abc ************ 例2: ************ あいうえ かきくけ 123 abc ************

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

たとえばvbsを使うとするとこんな感じ 以下をtest.vbsなどの名前で保存し、 テキストファイルを複数選んで、ドラッグアンドドロップしてください。 (エラー制御とかいれてないので、バグが満載ですが、 個人用ツールならこんなもんで十分でしょ) 'test.vbs set args= WScript.arguments set fs = CreateObject("Scripting.FileSystemObject") for each i in args set f=fs.getfile(i) f1=fs.getAbsolutePathName(f) f2=f1&".bak" fs.copyFile f1,f2,true set tf=fs.OpenTextFile(i) allLine=tf.readALL tf.close lines=split(allLine,vbcrlf) set tf=fs.CreateTextFile(i) flg=false for j=0 to ubound(lines) -1 if lines(j)="************" then if flg=false then flg=true else flg=false end if elseif flg=false then tf.writeLine(lines(j)) end if next tf.close next

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

sed を使うのなら、windowsだと sed "/^************$/,/^************$/d"

  • qtea
  • ベストアンサー率77% (38/49)
回答No.2

それっぽいツールがないか、どうか… 使えるかどうか、さっぱりわかりませんけど、それっぽいことができそうなツールを探してみました。 http://www.vector.co.jp/soft/win95/util/se359701.html http://www.vector.co.jp/soft/win95/util/se364605.html http://www.vector.co.jp/soft/winnt/util/se403712.html http://www.vector.co.jp/soft/winnt/util/se405657.html もしなければ、素直に、 http://www.vector.co.jp/vpack/filearea/win/util/text/ にないかどうか探してみてください。 目的のことができるツールがない、または、この手のソフトをインストールするのが嫌だというのであれば… ◯手作業 ◯エディタのマクロを利用する ◯WSHを利用する http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/wshtop.htm http://www.atmarkit.co.jp/fwin2k/operation/wsh01/wsh01_01.html ◯なんらかの言語をインストールする のいずれかでしょう。 しょっちゅう、大量のテキストファイルを加工するのであれば、perlあたりが、慣れると楽できます。 Perlだと、英語ですが、ActivePerlが良いのかな… http://penguin.nakayosi.jp/windows/perl.html http://www.activestate.com/ AWKは…さわったことないからわかりませんが、Win版のAWKもありますね(ってあたりまえか) http://www.vector.co.jp/vpack/filearea/win/util/text/awk/ あとは…この際ですから、.NET Framework でC#かVB.NETあたりを使うとか… http://www.microsoft.com/japan/msdn/netframework/downloads/ あ、あと、Rubyという手も… http://www.threeweb.ad.jp/~nyasu/software/rubyonwin.html でも、テキスト処理はやっぱ、Perlが楽ですね。 WSHかPerlかVB.NETを使用するのであれば、相談にのれます(たぶん)。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

言語はなにをつかうのでしょうか? 「************」が3つ以上出てこない保証はありますか? 例えば・・・ ************ aaa ************ bbb ************ とかなる場合は、どれをのこしてどれをけずることになるのでしょうか。 ************が前後に文字列がつく可能性はありますか? 例えば・・・ //************ ************xxxxx とか・・・ 改行マークに指定はありますか?

noname#31699
質問者

補足

windows上で動作するものが希望です。 (AWKとかSEDなどは少し知ってます。) 「************」は1つのファイルには、2つ(1組)だけです。 「************」は行の先頭からはじまり行末にはなにもつきません。 改行は「改行コード」(正規表現では「\n」かな)だけです。

関連するQ&A