次のパターンに置き換えたい(前述のルールの方が優先されます)
\right) -> remain unchanged
\right ) -> remain unchanged
\right] -> remain unchanged
\right ] -> remain unchanged
\right} -> remain unchanged
\right } -> remain unchanged
\ri) -> \right)
\ri -> \rightarrow
\right -> \rightarrow
つまり、括弧の括弧または中括弧がある場合は、\ rightが必要です。それ以外の場合は、\rightarrowに置き換える必要があります。要するに、私は多くの短縮されたgoogledoc方程式を適切なLaTeX形式に変換しようとしていました。私が思いついたのは次のとおりです
sed -i 's/\\ri\([^g]\)/\\right\1/g' $tempfile1 #first step substitution
sed -i 's/\\right\([^])}>|a]\)/\\rightarrow\1/g' $tempfile1
sed -i 's/\\right \([^])}>|a]\)/\\rightarrow \1/g' $tempfile1
期待どおりに\right\を\rightarrow\に変更しないことを除いて、問題なく動作します。私のテスト入力tempfile1は次のとおりです
\ri\right\right \right)\right]\right }\right )\ri \right ]\righta \al \\
入ります
\rightarrow\right\rightarrow \right)\right]\right }\right )\rightarrow \right ]\rightarrow \alpha \\
\right\の部分が正しく行われなかったことに注意してください。次に、残ったものを明示的に取得することを考えて、次の行を追加しましたが、期待どおりに機能せず、今は本当に混乱しています...
sed -i 's/\\right\\/\\rightarrow\\/g' $tempfile1 #why this does not work
よろしくお願いします!