• ベストアンサー

sedを使ってHTMLファイルのタグを置き換えたいのですが、正規表現が

sedを使ってHTMLファイルのタグを置き換えたいのですが、正規表現が上手く使いこなせなくて困っています。 実際のファイルには、<td class="style1" id="sequence1" >と書かれてある部分があり、これを<td>に置き換えたいのです。 それで、試しに sed -e 's/<td*>/<td>/g' ファイル名 と記述しましたが出来ませんでした。 正規表現の書き方が間違っているとは思うのですが、時間がなくお聞きすることにしました。 正しい書き方を教えて頂けますでしょうか。

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

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

sedって最短マッチの指定がないんでしたっけ? s/<td.[^>]*>/<td>/g みたいなやり方では?

momo_chi_chi
質問者

お礼

yambejpさん、返答ありがとうございます。 おかげさまで出来ました! 最短マッチという言葉さえも分からない状態なので、時間が出来たら勉強したいと思います。 ありがとうございます。

関連するQ&A

  • sedの正規表現について

    下記のsedコマンド正規表現の意味がわかりません どのような動きをしているのか教えて下さいm(__)m $ file_name="linux.txt" $ echo $file_name | sed -e "s/.*\.\([^.]*\)\$/\1/g" txt

  • HTMLタグが書かれた外部ファイルを、HTMLファイルに読込みたい

    複数のHTMLファイル内で、同じHTMLタグを書く部分がいくつかあります。 それらのHTMLタグの部分を外部ファイルか何かにして、HTMLファイル内で読み込むようにすることは出来ますか? JavaScriptでは外部ファイル(jsファイル)の読み込みはできるようですが、HTMLではできないんでしょうか? ※尚、CSSではやりたい事は出来ませんでした。 共通化できるのはスタイルだけなので・・。 私が共通化したいのは、HTMLタグです。 例えば <TD>hogehoge</TD> や <IMG src="hoge.jpg"> などのタグを複数のHTMLファイルで共有する為に 外部ファイル化したいんですが そんなことって出来るのでしょうか・・? 上記のようなタグを複数のHTMLファイルで共通できる手段であれば、外部ファイルという形式じゃなくても別にいいのですが・・

    • ベストアンサー
    • HTML
  • HTMLタグだけにマッチする正規表現を知りたい

    <td align="right" nowrap>12,345</td><td align="right" nowrap>234,567</td><td align="right" nowrap>456,789</td> といったHTML文から正規表現で数字の部分だけ抜き出して、配列に格納したいのです。 イメージとしては $matchs[0] = 12,345 $matchs[1] = 234,567 $matchs[2] = 456,789 となります。 当方で、書籍を参考に preg_match("/<td align=\"right\" nowrap>/i", $line); と正規表現を書いてみたのですが全然ヒットしません。 正しい書き方があるのでしょうか?

    • ベストアンサー
    • PHP
  • VBの正規表現について

    初めまして。 VB.NETについてなんですが以下のHTMLを正規表現で取得する事は可能ですか? <TD class=ct><A href="【項目1】">【項目2】</A></td> <TD class=ct>【項目3】</td> <TD class=ct>【項目4】</td> <TD class=ct>【項目5】</td>       <TD class=ct>【項目6】</td>       <TD class=ct>【項目7】</td> 項目1から項目7を正規表現で取得する事は可能でしょうか?

  • Javascriptで正規表現を使って HTMLタグの[id="hea

    Javascriptで正規表現を使って HTMLタグの[id="header-nav"]のような文字列がある場合に[id="headerNav"]というように一斉に置換するにはどういったふうに書けば良いでしょうか?

  • 正規表現で、htmlタグの td height="100" → td style="height:100px"できますか。

    正規表現をつかって、htmlタグの td height="100" になっているところを td style="height:100px"に一発変換したいのですが、 正規表現の書き方がわかりません。 また、100にかぎらず、200、250など、そこの値はばらばらなのを一発変換したいです。 よろしくお願いいたします。

  • 入れ子になっているHTMLタグも抜き出したい

    現在、/^(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/という正規表現で 再帰的に処理させてHTML部分のみカットしています。 が、 <table border="1" cellpadding="2" cellspacing="0" align="right" style="margin-left:1em"><tr><td colspan="2" cellspacing="0" cellpadding="2"><table align="center" border="0"><tr><td colspan="2" align="center">aaa</td></tr></table></td></tr></table> こういった同じタグの入れ子状態になっている事を想定していなかった為 正しく抜き出しが行えず問題が発生しています。 しかし、現状の処理でずっと動作させてきたので、出来るだけ処理を変更せず 上記HTMLにも対応させたいです。 何かいい正規表現か、同等の処理はありませんでしょうか?

    • 締切済み
    • PHP
  • ["]でくくられた文字列内に存在する[,]をsedで処理する正規表現について

    PostgreSQLを使うのは初心者です。 csvファイルよりCOPYコマンドを使ってPostgreSQLのテーブルにデータを入れようとしています。 もとになるcsvファイルは、データの区切りは[,]であり、文字列は["]でくくられ、さらに["]でくくられた文字列には[,]が存在します。 <csvデータ例> 123,"aaa","b,cde",234 いろいろ調べてみた結果、COPYコマンドを実行する前に、sedコマンドで正規表現を用いて置換をすればよいとの結論にたどり着いたので、 (1)["]でくくられた文字列内の[,]を[#]に置換する  → [123,"aaa","b,cde",234] => [123,"aaa","b#cde",234] に置換したい (2)["]を除く(sed 's/\"//g')  → [123,"aaa","b#cde",234] => [123,aaa,b#cde,234] に置換したい (3)[,]をtabに置換する(sed 's/,/\t/g')  → [123,aaa,b#cde,234] => [123 aaa b#cde 234] に置換したい (4)[#]を[,]に置換する(sed 's/#/,/g')  → [123 aaa b#cde 234] => [123 aaa b,cde 234] に置換したい を順番に行う処理を考えていますが、(1)で記述する正規表現がわかりません。 正規表現も初めて扱う初心者ですので、色々試してみましたが、うまく置換できません。 どなたかご教授の程をお願いします。 なお環境は、RedHatLinux9 + PostgreSQL-7.4.9です。 以上、宜しくお願い申し上げます。

  • タグを正規表現で完全に削除

    こんばんわ~ときどきこちら様でお世話になってます タグ(Java ScriptやHTML中のCSS等きわめて複雑なものも含む)を完全に削除してウェブサイトの文字だけを抜き出したいんですけど自分にはハードルが高すぎたみたいです^^; http://www.din.or.jp/~ohzaki/perl.htm#HTML_Tag いろいろ調べているうちにこちらのサイト様を発見し、 $none_tag =~ s/$tag_regex//; とやってみましたがなぜかタグが残ってしまいます。 とあるサイトの【文字】だけを抜き出せれば良いのでタイトルに正規表現と記載しましたがその他の方法でも構いませんのでよろしくお願いしますm(_ _)m

    • ベストアンサー
    • Perl
  • 正しい正規表現を教えてください

    お世話になります。 正規表現で次のように指定しているのですが、正確か自信がありませんので 正しい表記を教えてください。 1.全てのHTMLタグ <.*?> 2.「2012.1.1」または「2012.01.01」のような数字の羅列 (\d{4}).(\d{1,2}).(\d{1,2}) 3.「<img src="~」から始まる部分 <img src=" 4.「<div class="release">」を含む部分 <div class="release"> 5.HTMLタグと文字全て ^.*$ 全て色々なサイトで調べて表記したのですが、処理に時間がかかってて間違っている気がします。 yahoo!pipesのregexモジュールの部分で使用していて、デバッガーのTime takenに時間がかかっている場合、正しくない正規表現が原因らしいのです。 どうぞ宜しくお願いします。

    • ベストアンサー
    • PHP