次のようなエントリでいっぱいのファイルがあります。
`\index{a!b!c} \index{small!medium!large} \index{mouse!dog!elephant}`
これらすべてを変更するには、次のスクリプトが必要です。
\index{c!b!a} \index{large!medium!small} \index{elephant!dog!mouse}
基本的に何が起こるのかは、LaTexファイルのインデックスエントリを作成し、インデックスエントリの順序を逆にすることです。この問題を解決できるスクリプトが必要です。誰でもどんなアイデアがありますか?
ベストアンサー1
次の方法でこれを実行できますPerl
。
perl -lpe 's|\\index\{\K.*?(?=\})|join "!", reverse split "!", $&|eg'
簡単な説明:
- その位置の左側
\index{
と}
右側に最も近い部分をキャプチャブラケットとして選択します。 - バンに分けて、割れた部分を再配置し、バンに再接続してみてください。
- これらの組み合わせを見つけるには、その行でこれを複数回繰り返します。