2017-10-20 50 views
1

LaTeXのマスター/子ドキュメントワークフローをパッケージ "サブファイル"を使用して変更する方法を見つけようとしています。先頭に追加するBashまたはPython:すべての.texファイルに文字列を再帰的に追加して追加する

ライン::Appenにする

\documentclass[<mainfile>]{subfiles} 
\begin{document} 

ライン:

\end{document} 
とプリペンド私はすでに次の行を持っているすべてのファイルへ

私はbashの使用を考えていましたが、私はPythonでもうまくいくかもしれませんが、私は何が最善であるか分かりません。

提案がある場合は:-)?

+1

'sed'を使ってファイルを編集するのは非常に高速です。 –

+0

はい、入力フラグメントと予想される結果を投稿してください – RomanPerekhrest

答えて

0

直感的な方法は、最初に追加したい内容を含む2つのファイルprepend.texappend.texを作成し、例えばcat

を使用することです。あなたが使用することができますsrc/言うディレクトリ内のすべての既存のファイルに再帰的に適用するには

$ cat prepend.tex source.tex append.tex > target.tex 

所望の目標ファイルを作成するには、ソースファイルとそれらを連結します。

$ find src/ -type f -name "*.tex" -exec sh -c "cat prepend.tex '{}' append.tex > '{}'.tmp" \; 

これは新しい.tmpファイルを作成します。各ソースファイルの横に表示されます。 renameコマンドの-fから-nからオプションを強制的に

$ find src/ -type f -name "*.tmp" -exec rename -n 's/.tmp$//' '{}' \; 

変更が

を上書き:これら .tmpファイル内の結果はあなたが .tmpものでソースファイルを上書きする進む前に何をしたい exacltyであることを確認してください
+0

Wawwwはスムーズに機能しました! 1秒ごとにすべてのファイルを処理し、一時ファイルを使用するために非常に安全だと感じています(これを覚えておきます)。どうもありがとう ! –

+0

@EtienneSクール、嬉しいことに私が助けることができる:)ところで、より複雑な編集が必要な場合には、他のユーザが述べた 'sed'や' awk'も便利です。 – etopylight

+0

私はsedを試してみましたが、それはちょっと難解でした:私はまだそれに慣れていません(する必要があります!) –

関連する問題