• 締切済み

同じタグ(記述)が2度登場することをチェックしたい

HTMLファイルを作成するときに間違って 1つのファイルの中に同じ記述をダブって 書いてしまいました。 【 例 】 <a href="**.html">このページをブックマーク</a> を1ファイル内に2度 書いてしまった ファイルが、1万ファイルのうち10%ほどある。 ファイル数は 1万を超えており 「ダブりで書いた」ファイルをサーチする 方法がないかと思っています。 フリーウェア あるいは、何らかのテクニックでできる方法 などをアドバイスいただければと思います。

みんなの回答

  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.4

#2です。言うだけでは何なので、 参考までにタグのダブりチェック用Perlスクリプトを作ってみました #wtagck.pl @cktag=("a","form"); #ダブりチェック対象タグの指定 opendir DIR, "./"; #チェックするディレクトリを開く(とりあえず現在のフォルダ) foreach $file (grep { /\.html?$/i } readdir DIR){#html or htmファイルを抽出しながらループ open(IN, $file); #ファイルを開く $html=join("",<IN>);#ファイルの内容を読み込む close IN; #開いたファイルを閉じる $html=~tr/\n//d; #データ内の改行を削除 %ck=(); #ダブりチェック用連想配列のクリア $result=""; #結果表示用変数のクリア foreach $tag (@cktag){#チェックするタグを取りしながらループ while($html=~s|(<$tag.*?>.*?</$tag>)||io){#タグに囲まれた内容を取り出して削除(無くなるまでループ) $result.=$1."\n" if(exists($ck{$1}));#ダブっていたら結果に追加 $ck{$1}++; #ダブりチェック用連想配列セット } } if($result ne ""){ #ダブりが含まれているファイルだった場合は結果を表示 print "---- $file ----\n";#ダブっていたファイル名を表示 print $result; #ダブっていたタグの内容を表示 } } close DIR; #チェックしたディレクトリを閉じる ※動けばいい&思いつくままに作るので処理がイマイチ洗練されていません・・・

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.3

「Grep ツール」で検索かけてみてください。 ただ、同じ記述の箇所を検索範囲にした対象から全て引っ張ってくるので、検索にひっかかったうちの、1番と3番と5番と。。。。。111番のファイルの~~部分を~などとピックアップして置換することは手作業になるかと。 とりあえず、サーチするだけなら可能です。 ダブりで書いたかどうかは、コンピュータがどのファイルがどっちのファイルのダブりか判断することは不可能なので人間の確認になります。

  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.2

私ならたぶんperlを使ってダブりチェック&修正のスクリプトを作ります perlの勉強にもなって一石二鳥 (この内容ならそんなに難しくないような気が・・・) http://www.forest.impress.co.jp/lib/stdy/program/progdevenv/activeperl.html

回答No.1

多くのテキストエディタでは、指定フォルダ内のファイルの中身を検索し、置換する、と言う機能があると思います。 http://www.vector.co.jp/search/re_0037.html

関連するQ&A

専門家に質問してみよう