2017-10-31 4 views
1

Bibtexライブラリを書き出すためにPapers3を使用していますが、いくつかのアクセントにはエラーがあります。多くは中括弧が欠けているので、bibtexを実行するとコンパイルエラーが発生します。{ '{ i}をsedと置き換える方法

sed "s/{\'{\i}/{\'i}/g" agn.bib 

しかし、それdoesnの:

author = {Combi, J A and Rib{\'o}, M and Mart{\'{\i}, J and Chaty, S.}, 

が、私は私のファイル(agn.bib)にこれらのすべてのインスタンスを置き換えたいようなものを使用して、:ここよだれかけファイル内のエラーの例です。何もしないで、私はそれを行う方法スタックオーバーフローの答えを見つけることができません。

答えて

1

にはバックスラッシュを2回エスケープする必要があります。;一回一回sedため、シェル用:

sed -i "s/{\\\\'{\\\\i}/{\\\\'i}/g" file 

バックスラッシュは、両方のためのメタ文字であるから。

二重引用符のためsedは実際には\\を受け取り、基本正規表現の規則に従って、バックスラッシュをリテラル文字として扱います。

+0

ありがとうございます。これは動作し、最もクリーンなソリューションのようです。 –

+0

あなたは大歓迎です、そして、私はあなたを助けることがうれしいです。 – randomir

+0

完了。再度、感謝します。 –

0

これは(GNUのSED)あなたのために働くかもしれない:

sed -i 's/{\\'\''{\\i}/{\\'\''i}/g' file 

はそれを、すなわち\\を引用して\を元に戻し、すなわち'\''シェルにそれを通過することにより'と一致します。

+0

ありがとうございます。これは機能します。 –

関連する問題