Ma question est une continuation de
J'essaie d'intégrer dans un script shell unique une série de commandes qui
analyser une norme européenne pour extraire une séquence de test
convertir les encodages de texte en utf8
traiter le résultat avec la routine awk qui m'a été fournie dans le post ci-dessus.
enregistrer le contenu dans un fichier de destination
J'ai provisoirement écrit le script ci-dessous. Je suis capable de réaliser seulement step 1
et step 4
, mais ni step 2
ni step 3
. Je me demande si des fichiers intermédiaires (temporaires) doivent être créés. J'ai essayé de stocker la sortie des étapes intermédiaires dans des variables, mais sans succès. Toute aide serait également utile en ce qui concerne les erreurs possibles et la meilleure façon de le faire.
#!/bin/bash
# creating the Latex code for a test procedure
awkcommand= "/usr/bin/awk
'
$1 == "Group" {printf("\\section{%s %d}\n", $1, $2); next}
{
title = sep = ""
for (i=1; i<=NF; i++)
if ($i ~ /^[0-9][0-9][0-9]$/) {
printf("\\subsection{%s} \n\\TestDetails{%d}\n", title, $i)
break
}
else {
title = title sep $i
sep = FS
}
}
'
"
sourcefolder="/Users/yves/Desktop/Test-folder-parsing/"
sourcefile="NFEN3545-001.pdf"
destfile="Latex-code.tex"
destfolder=$sourcefolder
destinationfilepath=${destfolder}${destfile}
extractioncmd="/usr/local/bin/pdftotext -layout -f 54 -l 54"
modifier=" -"
#textencodingcmd="/usr/bin/iconv -f L1 -t UTF-8" # Needed but not used
${extractioncmd} ${sourcefolder}${sourcefile} ${modifier} > $destinationfilepath
exit 0
la source
[Add Comment]
bouton pour voir ce qui est autorisé dans les commentaires). (Dans ce cas, vous feriez mieux de mettre à jour votre message d'origine).Réponses:
Vous pouvez stocker le code transmis
/usr/bin/awk
dans une variable et/usr/bin/awk
dans une variable distincte comme ceci (non testé):Usage:
Notez que j'ai changé les guillemets doubles en guillemets simples. Entre guillemets doubles,
$i
est remplacé par le contenu de la variable shelli
. Entre guillemets simples, il s'agit d'un littéral$i
, ce que l'onawk
attend de voir.De plus, vous n'échappiez pas aux guillemets doubles dans la chaîne, donc vous n'avez
awk
jamais vuAu lieu de cela, il a vu
Si
$1
et$2
étaient vides,awk
vuÊtes-vous sûr que le stockage de l'emplacement de la commande est nécessaire? Vous pouvez généralement dépendre de la recherche
awk
dans un répertoire du chemin de votre utilisateur. Si vous n'utilisez pas le chemin complet versawk
, il n'y a aucune raison de paramétrerawk
.la source