次のテキストがあります。
Blablabla <b>[intlink id="</b>2204<b>" type="page"] Blalala
</b>
取り外して<b>
維持するために交換したいですid="number"
。したがって、結果は次のようになります。
Blablabla <b>[intlink id="2204" type="page"] Blalala
私は試みる:
sed -i 's@id="</b>[[:digit:]]\+<b>"@id="{1}"@g' ~/edit.txt
Blablabla <b>[intlink id="{1}" type="page"] Blalala
私も次のことを試しました。
sed -i 's@id="</b>[[:digit:]]\+<b>"@id="\\1"@g' ~/edit.txt
しかし、私は次のようになります。
Blablabla <b>[intlink id="\1" type="page"] Blalala
それでは、正規表現番号にID番号のテキストをどのように保持できますか?
答え1
\1
キャプチャグループ1を参照する正しい構文は、\\1
リテラルテキストが必要なことです\1
。したがって、\\1
に変更し\1
てから、実際にキャプチャしたい部分を括弧内に入れる必要があります。これは働きます:
sed -i 's@id="</b>\([[:digit:]]\+\)<b>"@id="\1"@g' ~/edit.txt