入力する:
<a href=FII/FOO./>FOO</a>
出力:
FOO
尋ねる:入力を出力に置き換えるには? FIIと「./>」は定数です。 FOOは「-」、「。」だけでなく、任意の英字に変更することができます。
アップデート:(「FOO」を明確にする)
FOO=ASD
then:
<a href=FII/ASD./>ASD</a>
FOO=XYZ
<a href=FII/XYZ./>XYZ</a>
アップデート2:(これはうまくいきません:O)
[user@notebook ~] echo '<a href=FII/FOO./>FOO</a>'
<a href=FII/FOO./>FOO</a>
[user@notebook ~] echo '<a href=FII/FOO./>FOO</a>' | sed 's/>[ \t]*\([^ \t]\+\)[ \t]*</\1/'
<a href=FII/FOO./FOO/a>
[user@notebook ~]
答え1
リンク名が必要な場合:
sed 's@^<a href[^>]*>\([^<]*\)</a>$@\1@'
答え2
href=FII/
あなたがしたいことが次のものを除いてすべてを捨てることであれ./
ば|
...
sed -e 's|^.*href=FII/\([A-Za-z.-]*\)\./>.*$|\1|'
例:
$ echo "<a href=FII/ASD./>ASD</a>"|sed 's|^.*href=FII/\([A-Za-z.-]*\)\./>.*$|\1|'
ASD
$ echo "<a href=FII/XYZ./>XYZ</a>"|sed 's|^.*href=FII/\([A-Za-z.-]*\)\./>.*$|\1|'
XYZ
$ echo "<a href=FII/morgel.dorgel./>XYZ</a>"|sed 's|^.*href=FII/\([A-Za-z.-]*\)\./>.*$|\1|'
morgel.dorgel
答え3
1行で正しい形式のラベルを確保できる場合は、次のようにします。
sed 's/^.*>[ \t]*\([^ \t]\+\)[ \t]*<.*$/\1/' your_file
FOO
これはあなたの例で重複を確認しません。開くタグ区切り文字とタグ本体が繰り返されるインスタンスのみを置き換えるには、FOO
次のコマンドを使用できます.
sed 's@< *a *href *= *FII/\([-a-zA-Z.]\+\) *\./\?> *\1 *< */ *a *>@\1@' your_file
より読みやすくするために、Perlでも同じです。
perl -pe 's{
< \s* a \s* href \s* = \s* FII/ # Constant part
([-a-zA-Z.]+) # Payload (saved in $1)
\s*\./?\s*> # Optional space, ./ and >
\s*\1\s* # Payload repeated
<\s*/\s*a\s*> # Closing delimiter
}{$1}x # Replace match with $1
' your_file