LaTeXドキュメントを編集していますが、 '\parallel'のすべてのインスタンスを 'something'\parallel something \parallel
に変更する必要がある\norm{something}
場合があります。 '\parallel' と 'something' の間にスペースはありません。使ってみよう
$ sed -i 's/\\parallel[.*]\\parallel/\\norm\{\1\}/g' a.txt $
ただし、「無効な参照」エラーが返されます。正しいコードは何ですかsed
?
ベストアンサー1
これを行うとき:
$ sed -i 's/\\parallel[.*]\\parallel/\\norm\{\1\}/g' a.txt
、キャプチャグループを使用していません。
[]
指定した文字クラスから。文字クラスは、それらの1つに置き換えることができるいくつかの記号です。したがって、REは[.*]
「文字列」ではなく正確に一致するのと同じです。.
*
キャプチャグループはで表示されます\(RE\)
。したがって、以下のよう[]
に変更する必要があります。\(\)
$ sed -i 's/\\parallel\(.*\)\\parallel/\\norm{\1}/g' a.txt
経由でアクセスできます\1
。