2017-01-25 5 views
0

5MBのファイルで大量のHTMLを置き換える必要があります。試したすべてのOS Xエディタを試してみる必要があります。 sedが答えのようですが、正しいコマンドを書くことは私の失敗です。私はこの3時間で終わり、最後に助けを求めました!大きなテキストファイルのワイルドカード文字列を見つけてsedで置き換えよう

は、ここでの例だ - この

</div><div class="fsm fwn fcg">Joined<br>Added by **Tiffany Seibel-Howard** on <abbr title="**Thursday, June 20, 2013 at 12:39am**" data-utime="**1371703149**"><span class="timestampContent">**June 20, 2013**</span></abbr></div></div><div class="_4bl7 mrm"></div></div></div></div></div></div></div></td><td class="_51m- vTop hLeft pam _51mw"><div class="_4-u2 _4-u8" data-name="GroupProfileGridItem" data-testid="GroupMember_**100002558935125**"><div class="clearfix"><a class="_8o _8r lfloat _ohe" href="**https://www.facebook.com/brookesblossoms?fref=grp_mmbr_list**" tabindex="-1" aria-hidden="true" data-hovercard="/ajax/hovercard/user.php?**id=100002558935125&amp;extragetparams=%7B%22fref%22%3A%22grp_mmbr_list%22%2C%22directed_target_id%22%3A479810992099587%7D**" data-hovercard-prefer-more-content-show="1"><img class="_s0 _rv img" src="./(2) Neuroblastoma Support group . You are Not Alone Ask Away._files/**10374531_827398764022080_7090816591123160699_n.jpg**" alt=""></a><div class="_8u _42ef"><div class="_6a _5u5j"><div class="_6a _6b" style="height:100px"></div><div class="_6a _5u5j _6b"><div class="fsl fwb fcb">

ニーズのすべてを削除するために、任意の時間は、それがファイルに表示されます。

**と**の間にある部分は、ファイル全体で変更されるワイルドカードです。

ヘルプ!

答えて

0

あなたがやろうとしているものの問題は、あなたがリテラルとして扱う必要があるが、あなたはまた、あなたが正規表現のメタ文字(例えば>**June 20, 2013**<に変換する必要がリテラルテキストを持っていることを正規表現のメタ文字を含むテキスト(例えば?)を持っているということです - >>[^<]+<)。

</div><div class="fsm fwn fcg">Joined<br>Added by _NOT_LESS_THAN_ on <abbr title="_NOT_DOUBLE_QUOTE_" data-utime="_NOT_DOUBLE_QUOTE_"><span class="timestampContent">_NOT_LESS_THAN_</span></abbr></div></div><div class="_4bl7 mrm"></div></div></div></div></div></div></div></td><td class="_51m- vTop hLeft pam _51mw"><div class="_4-u2 _4-u8" data-name="GroupProfileGridItem" data-testid="GroupMember__NOT_DOUBLE_QUOTE_"><div class="clearfix"><a class="_8o _8r lfloat _ohe" href="_NOT_DOUBLE_QUOTE_" tabindex="-1" aria-hidden="true" data-hovercard="/ajax/hovercard/user.php?_NOT_DOUBLE_QUOTE_" data-hovercard-prefer-more-content-show="1"><img class="_s0 _rv img" src="./(2) Neuroblastoma Support group . You are Not Alone Ask Away._files/_NOT_DOUBLE_QUOTE_" alt=""></a><div class="_8u _42ef"><div class="_6a _5u5j"><div class="_6a _6b" style="height:100px"></div><div class="_6a _5u5j _6b"><div class="fsl fwb fcb"> 

は、テキスト内のすべての正規表現のメタ文字をサニタイズ(:それを行うには、まず一意の記述文字列として変更されているテキストの一部、例えばを表現する方法を考え出すことから始めたいとしています

_NOT_LESS_THAN_ -> [^<]+ 
_NOT_DOUBLE_QUOTE_ -> [^"]+ 

、その後、あなたがテキストを削除するsedを-Eを実行することができます:あなたが正規表現に上記使用プレースホルダ文字列を変換した後) Is it possible to escape regex metacharacters reliably with sedを参照してください。

GNU awkのほうが良いかもしれませんが、RSを上記のテキストに設定すると、ファイル全体を一度にメモリに読み込む必要はありません。

関連する問題