ラテックスソースをコンパイルするシェルスクリプトを作成しようとしています。次のようなコマンドに含まれている参考文献ファイルの名前を取得したいと思います。
\bibliography{ファイル名}
「ファイル名」をシェル変数に保存する必要があります。これに対する私の解決策(tcshで)はひどく恥ずかしいです:
バイオリオグラフィーを設定=grep -v -E "[[:blank:]]*%[[:blank:]]*" poltheory.tex | grep -E "\\bibliography{[A-Za-z0-9_\.]*}" | tail -1 | sed 's/\\bibliography//' | tr -d { | tr -d } | awk '{print $1}'
これは次のように分類されます。
- ラテックスソースにコメント行を表示しない
- 有効な参考文献タグを含む行を取得します
- 最後のものだけを使用してください(何らかの理由で複数のものが定義されている場合)
- 中括弧を取り除く
- シェル変数に残されているものを設定します。
確かに、私が見落としているこれを行うためのエレガントな方法があります。すごいですか?私はすでに実用的なコマンドを持っているので、これは単に美しさとシェルの魔法の名の下にあります。