プロが教える店舗&オフィスのセキュリティ対策術

同一のフォルダにある複数のテキストファイルに対して

************

************
で囲まれた部分(複数行)を一括して削除できる方法はありますでしょうか。

************

************
で囲まれた部分は、行数も内容も同じではありません。

例1:
************
123

abc

************

例2:
************
あいうえ

かきくけ
123
abc
************

A 回答 (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
    • good
    • 0

sed を使うのなら、windowsだと


sed "/^************$/,/^************$/d"
    • good
    • 0

それっぽいツールがないか、どうか…


使えるかどうか、さっぱりわかりませんけど、それっぽいことができそうなツールを探してみました。

http://www.vector.co.jp/soft/win95/util/se359701 …
http://www.vector.co.jp/soft/win95/util/se364605 …
http://www.vector.co.jp/soft/winnt/util/se403712 …
http://www.vector.co.jp/soft/winnt/util/se405657 …

もしなければ、素直に、
http://www.vector.co.jp/vpack/filearea/win/util/ …
にないかどうか探してみてください。

目的のことができるツールがない、または、この手のソフトをインストールするのが嫌だというのであれば…

◯手作業
◯エディタのマクロを利用する
◯WSHを利用する
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/wshtop. …
http://www.atmarkit.co.jp/fwin2k/operation/wsh01 …
◯なんらかの言語をインストールする

のいずれかでしょう。
しょっちゅう、大量のテキストファイルを加工するのであれば、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/ …

あとは…この際ですから、.NET Framework でC#かVB.NETあたりを使うとか…
http://www.microsoft.com/japan/msdn/netframework …

あ、あと、Rubyという手も…
http://www.threeweb.ad.jp/~nyasu/software/rubyon …

でも、テキスト処理はやっぱ、Perlが楽ですね。

WSHかPerlかVB.NETを使用するのであれば、相談にのれます(たぶん)。
    • good
    • 0

言語はなにをつかうのでしょうか?



「************」が3つ以上出てこない保証はありますか?
例えば・・・

************
aaa
************
bbb
************
とかなる場合は、どれをのこしてどれをけずることになるのでしょうか。

************が前後に文字列がつく可能性はありますか?
例えば・・・

//************
************xxxxx
とか・・・

改行マークに指定はありますか?

この回答への補足

windows上で動作するものが希望です。
(AWKとかSEDなどは少し知ってます。)

「************」は1つのファイルには、2つ(1組)だけです。

「************」は行の先頭からはじまり行末にはなにもつきません。

改行は「改行コード」(正規表現では「\n」かな)だけです。

補足日時:2006/11/08 13:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています