J'ai un tas de sorcière fichiers latex utiliser la \input{filename.tex}
macro (cela fonctionne comme un #include
de C), et je veux les résoudre afin que je puisse sortie tous à un seul .tex fichier (le fichier doit être collé à la place de la macro \input{}
, il est raisonnable de supposer que chaque fichier n'est référencé qu'une seule fois).Comment lire les fichiers récursive dans awk
Exemple:
tesis.tex:
My thesis.
\input{chapter1.tex}
More things
\input{chapter2.tex}
chapter1.tex:
Chapter 1 content.
chapter2.tex:
Chapter 2 content.
\include{section2-2.tex}
section2-2.tex:
Section 1.
Le résultat souhaité doit être:
My thesis.
Chapter 1 content.
More things
Chapter 2 content.
Section 1.
S'il n'y avait qu'un niveau \input{foo.tex}
je serais en mesure de résoudre ce avec ce programme AWK:
/\\input\{.*\}/{
sub(/^[^{]*{/,"",$0)
sub(/}[^}]*$/,"",$0)
system("cat " $0)
next
}
{
print $0
}
Est-il possible de lire les fichiers récursivement dans AWK?
(Je suis ouvert à le faire avec une autre langue, mais le posix Est meilleur)
Merci!
Merci! Cela résout parfaitement mon problème et peut être facilement étendu. –
Ceci est similaire à ma solution bash implémentée dans awk. Je ne savais pas que awk permet aussi à une fonction de s'appeler. Cool . –