特定の正規表現を探していますが、3日間努力しましたが、正しい答えが見つかりませんでした。
XMLフィードの特定の部分を削除する必要があります。 sed、awkを使ってみましたが、うまくいきません。
私が持っているもの:
...Something before
<description><![CDATA[Des chercheurs de l'université de Columbia à New York ont mis au point un nouveau moyen de cacher un message dans un texte sans en altérer le sens et sans dépendre d'un format de fichier particulier. Nommée FontCode, cette idée est <a href="https://korben.info/cacher-des-informations-dans-un-texte-grace-a-des-modifications-sur-les-caracteres.html">Passage a la news suivante</a>]]></description>
... Other news
私は必要です:
...Something before
<description><![CDATA[Des chercheurs de l'université de Columbia à New York ont mis au point un nouveau moyen de cacher un message dans un texte sans en altérer le sens et sans dépendre d'un format de fichier particulier.<a href="https://korben.info/cacher-des-informations-dans-un-texte-grace-a-des-modifications-sur-les-caracteres.html">Passage a la news suivante</a>]]></description>
... Other news
- 「<\description></description>の間で複数のインスタンスを選択してください。
- 最後の不完全な文を削除します(hrefの前、「Nommée FontCode、cette idée est」)。
ご協力ありがとうございます! ;)
ベストアンサー1
sed -E '/^[[:blank:]]*<description><!\[CDATA\[/s/([!?.])[^!?.<]*<a/\1 <a/' file
<description><![CDATA[
その後、正確な文字列(スペースまたはタブが先頭にある可能性がある)で始まるすべての行を見つけます。このラインでは交換が行われます。
置換は、文終端([!?.]
)の後に任意の数の文字が続くものと一致します。いいえ文の終端者または<
、および文字列<a
。これは、最初の文の終端者であるスペースと文字列に置き換えられます<a
。