sedを使用して文字列の特定の部分を削除しますか?

sedを使用して文字列の特定の部分を削除しますか?
$ echo '<a href="mailto:NA?Subject=AB42525216 - FOOBAR bla bla - bla">NA</a>'
<a href="mailto:NA?Subject=AB42525216 - FOOBAR bla bla - bla">NA</a>
$ echo '<a href="mailto:NA?Subject=AB42525216 - FOOBAR bla bla - bla">NA</a>' | sed 's/SOMEMAGIC/NA/g'
NA

私の質問:「echo」から文字列を削除するためにSOMEMAGICを使用する方法は?区切り記号は>私の考えでは

ベストアンサー1

<a href>xx</a>タグ内の値を抽出しようとしているようです。その場合、コマンドは次のようになります。

GNU sed:

sed -r 's/^<a [^>]*>([^<]*)<.*$/\1/g' file

既存のsed:

sed 's/^<a [^>]*>\([^<]*\)<.*$/\1/g' file

例:

$ echo '<a href="mailto:NA?Subject=AB42525216 - FOOBAR bla bla - bla">NA</a>' | sed -r 's/^<a [^>]*>([^<]*)<.*$/\1/g'
NA

$ echo '<a href="mailto:NA?Subject=AB42525216 - FOOBAR bla bla - bla">NA</a>' | sed 's/^<a [^>]*>\([^<]*\)<.*$/\1/g'
NA

$ echo '<a href="mailto:NA?Subject=AB42525216 - FOOBAR bla bla - bla">fooooooooooooooobaaaaaaaaaar</a>' | sed 's/^<a [^>]*>\([^<]*\)<.*$/\1/g'
fooooooooooooooobaaaaaaaaaar

おすすめ記事