パラメータを使用したカスタムタグの変換

パラメータを使用したカスタムタグの変換

マークダウンを使って卒業論文を書きたいです。残念ながら、完璧な編集者がいないので、即興で書く必要があります。 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

おすすめ記事