ディレクトリ内のすべてのファイル名を含むtexファイルを生成します。

ディレクトリ内のすべてのファイル名を含むtexファイルを生成します。

95個のtexファイルを含むフォルダがあります。次のコードを含む all.tex tex ファイルを作成する必要があります。

\documentclass[10pt]{article}
\begin{document}
\input{file1.tex}
\input{file2.tex}
...
\input{file95.tex}
\end{document}

ファイル名はこれですいいえパターンがあるためループは使用できません。上記は単なる実例です。

Bashで次のことを試しました。

printf '%s\n' *.tex | paste -sd "\n" - > all.tex

これにより、次の all.tex ファイルが生成されます。

file1.tex
file2.tex
...
file95.tex

ファイル名の周囲に\ input {}を追加するにはどうすればよいですか?序文などをどのように追加しますか?

使っていますバッシュ(Ubuntuから)Windows 10で。

ベストアンサー1

単純なシェルスクリプトはprintf単純なワイルドカード拡張を使用します。

#!/bin/sh

printf '%s\n' '\documentclass[10pt]{article}' \
              '\begin{document}'

printf '\input{%s}\n' *.tex

printf '%s\n' '\end{document}'

スクリプトを呼び出して出力をリダイレクトできます。たとえば、次のようになります。

/path/to/script > /path/of/output.tex

単一のコマンドラインから単一のリダイレクト用に印刷物をグループ化できます。

{ printf '%s\n' '\documentclass[10pt]{article}' \
              '\begin{document}'
printf '\input{%s}\n' *.tex
printf '%s\n' '\end{document}'
} > /path/of/output.tex

おすすめ記事