Un outil pour récupérer les synonymes d'un mot de la langue française - retour accueil
Anonyme, en lecture seule : git clone git://bebou.netlib.re/des
Authentifié·e, en écriture : git clone ssh://git@bebou.netlib.re:1459/srv/git/des
Log | Files | Refs | README | zip | tar.gz |
des (1200B)
1 #! /bin/sh
2
3 set -e
4
5
6 mode=online
7 path=/home/arthur/git/des/synonymes.tsv
8
9 usage() {
10 cat <<.
11 Affiche les synonymes d'un mot de la langue française. Les données proviennent
12 du DES du CRISCO.
13
14 Usage : des [-h] [-d] [mot]
15
16 Arguments :
17
18 * -h : Imprime cette aide
19 * -d : Fonctionnement non interactif. Affiche le résultat et ne propose
20 pas de choisir un nouveau mot parmi les résultats.
21 * mot : Le mot dont on veut les synonymes. S'il est absent alors l'outil le
22 demandera lui même.
23 .
24 }
25
26 case "$1" in
27 (-d) dump=yes; shift;;
28 (-h) usage; exit 0;;
29 esac
30 [ "$1" ] && mot="$*" || { printf "Mot : "; read -r mot; }
31
32 while [ -n "$mot" ]
33 do
34 oldmot="$mot"
35 echo "$oldmot" | cut -f1
36 if [ "$mode" = "online" ];then
37 line=$(echo "synonyme $mot" | nc -N bebou.netlib.re 2222 | sed '1d')
38 else
39 line=$(grep "^$mot " "$path" | cut -f2- | tr '; ' ' \n')
40 fi
41 mot=$(echo "$line" | column -ts' ')
42 if command -V fzy > /dev/null && [ ! "$dump" ]; then
43 command -V xclip > /dev/null && printf "%s" "$oldmot" | xclip -selection clipboard
44 mot=$(echo "$mot" | fzy -l 50 | sed -E 's, *[0-9]+,,')
45 else
46 echo "$mot"
47 oldmot=$(echo "$mot" | head -n1 | sed -E 's, *[0-9]+,,')
48 exit 0
49 fi
50 done
51