Page MenuHomec4science

splitMC_CasusDroitArchi_FullQuestionsToMultipleFiles.sh
No OneTemporary

File Metadata

Created
Fri, May 3, 15:35

splitMC_CasusDroitArchi_FullQuestionsToMultipleFiles.sh

#!/bin/bash
outputDir="./output"
#beginQ="\begin{question}{q:tf-NUM}"
#endQ="\end{question}"
iter=0;
fileName=""
tenComp=10
#lastLine=$(< "$1" wc -l)
currLine=0
partTxt=""
first=0
casusNr=0;
type=""
last_type=""
headerNr=0
#remove BOM and CRLF windows format
#CRLF
sed -i 's/\r//g' ./*.txt
#BOM
sed -i '1s/^\xEF\xBB\xBF//' ./*.txt
for f in *.txt; do
#create header
headerNr=$((headerNr+1))
fileName="$outputDir/header_$headerNr.tex"
echo $fileName
endHeaderLineNo=$(grep -n "%% ==================== QUESTIONS" $f | cut -f1 -d:)
if [[ $f == *"public"* ]]; then
partTxt="Première partie - Droit public"
type="PUB"
else
partTxt="Seconde partie - Droit privé"
type="PRI"
fi;
if [[ "$type" != "$last_type" ]]; then
casusNr=1
echo "\newpage" > $fileName
echo "\begin{center}" >> $fileName
echo "\subsection*{\textsc{$partTxt}}" >> $fileName
echo "\end{center}" >> $fileName
echo "\noindent" >> $fileName
echo "Pour chaque question marquer la case correspondante à la r\'eponse correcte sans faire de ratures. Il n'y a qu'\textbf{une seule} r\'{e}ponse correcte par question." >> $fileName
echo "\bigskip" >> $fileName
echo "" >> $fileName
echo "" >> $fileName
echo "\noindent\textbf{\large Casus $casusNr}" >> $fileName
echo "" >> $fileName
echo "\noindent" >> $fileName
else
casusNr=$((casusNr+1))
echo "\newpage" > $fileName
echo "\noindent\textbf{\large Casus $casusNr}" >> $fileName
echo "\medskip" >> filename
echo "" >> $fileName
echo "\noindent" >> $fileName
fi
lineNo=1
while IFS= read -r line; do
if [[ $lineNo -lt $endHeaderLineNo && $lineNo -gt 2 ]]; then
if [ -z "$line" ]; then
echo "\\\\" >> $fileName
else
echo $line >> $fileName
fi
fi
lineNo=$((lineNo+1))
done < $f
#create questions
lineNo=1
questionNr=1
while IFS= read -r line; do
if [[ $line == "%% =========="* ]]; then
num=$(printf %03d $questionNr)
fileName="$outputDir/mcD$type$casusNr-$num.tex"
echo $line > $fileName
questionNr=$((questionNr+1))
elif [[ $lineNo -gt $endHeaderLineNo ]]; then
if [ -z "$line" ]; then
echo "\\\\" >> $fileName
else
echo $line >> $fileName
fi
fi
lineNo=$((lineNo+1))
done < $f
last_type=$type
done;

Event Timeline