Description générale du Script

Généralités

Ce script permet de générer un tableau contenant les concordances entourant le mot cible. Il est exécuté directement dans le script de base.
- Le dossier dump des textes.
- Le motif, qui est le mot recherché.



La sortie attendue

La sortie attendue de ce script est donc un tableau comprenant les informations suivantes pour chaque url:

- Le contexte à gauche du mot cible.
- Le mot cible.
- Le contexte à droite du mot cible.



Lancement du script

Le script est lancé directement dans le script de tableau bash avec la commande :
bash programmes/concordance.sh ./$fichier_text/$basename-$lineno.txt $motif > ./concordances/$basename-$lineno.html








Script dans son entièreté
#!/usr/bin/bash

# Déclaration de deux variables

fichier_text=$1  # Dossier des dumps   
motif=$2 # Mot recherché

if [[ $# -ne 2 ]] # Vérifie si les deux variables sont entrées en argument
then
    echo "Ce programme demande exactement deux arguments."
    exit
fi

if [[ ! -f $fichier_text ]] 
then
echo "le fichier $fichier_text n'existe pas"
exit
fi

if [[ -z $motif ]] 
then
echo "le motif est vide"
exit
fi

# Début du tableau 
echo "
<!DOCTYPE html>
<html lang=\"en\">
<head>
<meta charset=\"UTF-8\">
<title>Concordance</title>
</head>
<body>
<table>
<thead>
<tr>
    <th class=\"has-text-right\">Contexte gauche</th>
    <th>Cible</th>
    <th class=\"has-text-left\">Contexte droit</th>
</tr>
</thead>
<tbody>
"

# Expression régulière
grep -E -o "(\w+\W+){0,5}\b$motif\b(\W+\w+){0,5}" $fichier_text | sed -E "s/(.*)($motif)(.*)/<tr><td>\1<\/td><td>\2<\/td><td>\3<\/td><\/tr>/"

# Début du tableau
echo "
</tbody>
</table>
</body>
</html>
"
			








































Description précise du contenuEntrons dans les détails...

Passons maintenant à la description précise du contenu et des commandes du scrpit

fichier_text=$1
motif=$2 # Expression régulière

if [[ $# -ne 2 ]]
then
    echo "Ce programme demande exactement deux arguments."
    exit
fi

if [[ ! -f $fichier_text ]]
then
    echo "le fichier $fichier_text n'existe pas"
    exit
fi

if [[ -z $motif ]]
then
    echo "le motif est vide"
    exit
fi
		


Ce script nécessite deux arguments lors de son exécution dans le terminal pour fonctionner. Si ces deux arguments ne sont pas donnés, le programme s'arrête. Pareil si le dossier de textes ou le mot n'existe pas.



echo "
<!DOCTYPE html>
<html lang=\"en\">
<head>
    <meta charset=\"UTF-8\">
    <title>Concordance</title>
</head>
<body>
<table>
<thead>
    <tr>
    <th class=\"has-text-right\">Contexte gauche</th>
    <th>Cible</th>
    <th class=\"has-text-left\">Contexte droit</th>
    </tr>
</thead>
<tbody>
"

echo "<html><head><link rel="stylesheet" href="style.css"></head><body>" > $fichier_tableau
echo "<h2>Tableau $basename :</h2>" >> $fichier_tableau
echo "<br/>" >> $fichier_tableau
echo "<table>" >> $fichier_tableau


Ici, c'est le début du tableau.
On va créer trois colonnes : Contexte gauche, le mot cible, Contexte droit.


grep -E -o "(\w+\W+){0,5}\b$motif\b(\W+\w+){0,5}" $fichier_text | sed -E "s/(.*)($motif)(.*)/<tr><td>\1<\/td><td>\2<\/td><td>\3<\/td><\/tr>/"

		


Cette expression régulière permet de récupérer les mots autour du mot cible dans le bon fichier.
Jusqu'à 5 mots autour vont être récupérés.

echo "
</tbody>
</table>
</body>
</html>
"
		


On ferme le tableau ici.