アイテムの順序を変更

アイテムの順序を変更

次のようなエントリでいっぱいのファイルがあります。

`\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{}右側に最も近い部分をキャプチャブラケットとして選択します。
  • バンに分けて、割れた部分を再配置し、バンに再接続してみてください。
  • これらの組み合わせを見つけるには、その行でこれを複数回繰り返します。

おすすめ記事