正規表現を使用してこの擬似コードを作成します。

正規表現を使用してこの擬似コードを作成します。

私は毎日0230でCrontabを介して定期的に実行するMakefileを作業しています。

crontab -e; 30 2 * * * /bin/thePseudocode

Pythonに似た擬似コード

directories = ["Cardiology", "Rheumatology", "Surgery"]
for directory in directories
   files = directory.files(); % not sure if such a parameter exists
   files = files.match(.*tex); % trying to get only tex files; not sure if match exists
   summaryFile = "";
   for texFile in files
      summaryFile.add( ...
                textFile.match( (?s)\\begin{question}.*?\\end{question} ) ...
      )
      % Solution based on this thread
      % Problem in writing this Regex in Perl http://unix.stackexchange.com/questions/159307/to-match-only-innermost-environment-by-regex
   end
end

save this `summaryFile` as /Users/Masi/Dropbox/QuestionSummary.tex

ここではfiles、ディレクトリ内のすべてのファイルのリスト、およびsummaryFileすべてのtexファイルのすべての問題を一覧表示するファイルです。最終的にコンパイルしたいファイルPDFラテックス毎朝PDFリーダーで読んでください。

フォルダ内のサンプルファイルリウマチ学

\section{Takayasu arteritis}

\begin{question}
{You get a patient. 
What do you notice first in this patient?}
Absence of peripheral pulse.
\end{question}

\begin{question}
{What was the first Takayasu case?}
Young woman in Asia with red vessels in the eye. 
So special eye diagnosis done. 
Affects eye.
\end{question}


Fever of unknown origin can be used when you do not know what is causing the disease. 

% Show cases in MedScape and ask class. 

Aneurysms. 


\subsection{Treatment}

\begin{question}
{What you should always include in Takayasu treatment? 
What are the symptoms?}
Blood pressure.
Aneurysms which will burst without treatment. 
So blood pressure decreasing drugs like beta blockers along in combination with other drugs.
\end{question}

\begin{question}
{When is the checkup of the Takayasu arteritis?} 
Only once per year. 
You could expect every month like normally in this kind of diseases.
But only once per year.
\end{question}

フォルダ内のすべてのファイルの出力が必要な場所

\section{Rheumatology}

\begin{question}
{You get a patient. 
What do you notice first in this patient?}
Absence of peripheral pulse.
\end{question}

\begin{question}
{What was the first Takayasu case?}
Young woman in Asia with red vessels in the eye. 
So special eye diagnosis done. 
Affects eye.
\end{question}

\begin{question}
{What you should always include in Takayasu treatment? 
What are the symptoms?}
Blood pressure.
Aneurysms which will burst without treatment. 
So blood pressure decreasing drugs like beta blockers along in combination with other drugs.
\end{question}

\begin{question}
{When is the checkup of the Takayasu arteritis?} 
Only once per year. 
You could expect every month like normally in this kind of diseases.
But only once per year.
\end{question}

ファイルの生成

all: 
   pdflatex /Users/Masi/Dropbox/QuestionsSummary.tex /Users/Masi/Dropbox/QuestionsSummary.pdf
   pdflatex /Users/Masi/Dropbox/QuestionsSummary.tex /Users/Masi/Dropbox/QuestionsSummary.pdf % to compile a few times to be successful
pdflatex 
% I am not sure if I should have some error management, since often the pdflatex crashes
% So pdflatex is not probably the right tool to go

目的のツールでこのような疑似コードを書くには? 私はPythonが好きですが、完全にPythonに頼ることはありません。

ベストアンサー1

私が正しく理解したら、次のようなものを探しています(in bash)。

#!/usr/bin/env bash

## avoid errors if a directory has no *tex files
shopt -s nullglob

directories=("Cardiology" "Rheumatology" "Surgery");

## Change this to set whichever options you want.
printf "%s\n%s\n" "\documentclass{YOURCLASS}" "\begin{document}"

for directory in ${directories[@]}
do
    ## Reset the counter, avoid empty sections.
    c=0;
    for file in "$directory"/*tex
    do
        let c++
        [ "$c" -eq 1 ] && printf "\n%s\n" "\section{$directory}"
        ## Extract the wanted lines
        perl -lne '$a=1 && print "" if /\\begin{question}/; 
                  print if $a==1;
                  $a=0 if /\\end{question}/;' "$file" 
        echo ""
    done
done
echo "\end{document}"

Cardiologyなどを含むディレクトリでスクリプトを実行すると、次の出力が提供されるはずです。

おすすめ記事