マークダウンを使って卒業論文を書きたいです。残念ながら、完璧な編集者がいないので、即興で書く必要があります。 bibtex引用の場合は、pandocへの入力を処理する前に、ある種のbash-filterを使用して私の定義を変換したいと思います。
<@BIBTEX_ID[|OPTIONAL_PAGE_OR_CHAPTER_NUM[|OPTIONAL_UNIT_DEFINITION]]>
このような:
\autocite[OPTIONAL_UNIT_DEFINITION][OPTIONAL_PAGE_OR_CHAPTER_NUM]{BIBTEX_ID}
例:
<@sample> ---> \autocite{sample}
<@sample|12> ---> \autocite[12]{sample}
<@sample|12|c.> ---> \autocite[12][c.]{sample}
どのbash / unixツールが何をすることができますか? sedまたはawkを使用してこれを実行できますか?
ベストアンサー1
sed
直接使用できます。
sed -e 's/<@\([^|>]*\)|\([^|>]*\)|\([^>|]*\)>/\\autocite[\2][\3]{\1}/g' \
-e 's/<@\([^|>]*\)|\([^|>]*\)>/\\autocite[\2]{\1}/g' \
-e 's/<@\([^|>]*\)>/\\autocite{\1}/g'
これは、可能な各式を個別に置き換えます。最初は3つの引数参照を処理し、次に2つ、1つを処理します。各オプションのブロックは\([^|>]*\)
出力で一致し、置き換えられます\1...3
。