Bashskript för synonymordlista
Postat: 22 maj 2009, 19:43
Hej!
Det klagas mycket på att det inte finns någon vettig synonymordlista i linux (främst open office). Råkade surfa förbi synonymer.se idag och tänkte att den kan man säkert använda till nåt bra.
Har skrivit ett rätt enkelt bashskript som verkar fungera så långt att det ger tillbaka synonymer till ordet man ger som argument till skriptet. Då jag inte är någon expert på skriptande tar jag gärna emot tips och råd på hur man kan göra skriptet bättre och snyggare.
När allt fungerar tillfredsställande funderar jag på om det går att bygga ut funktionaliteten med t.ex. zenity så att det blir användbart även för terminalrädda. Kanske går det på något sätt att knyta skriptet till en tangentbordsgenväg så att det söker på det som för tillfället finns i clipboard (tänk: markera ord, tryck kombination och få en zenityruta med synonymer).
Nåväl, här är vad jag har åstadkommit så långt:
edit: Skriptet kräver, som det ser ut nu, att lynx är installerat.
Det klagas mycket på att det inte finns någon vettig synonymordlista i linux (främst open office). Råkade surfa förbi synonymer.se idag och tänkte att den kan man säkert använda till nåt bra.

Har skrivit ett rätt enkelt bashskript som verkar fungera så långt att det ger tillbaka synonymer till ordet man ger som argument till skriptet. Då jag inte är någon expert på skriptande tar jag gärna emot tips och råd på hur man kan göra skriptet bättre och snyggare.
När allt fungerar tillfredsställande funderar jag på om det går att bygga ut funktionaliteten med t.ex. zenity så att det blir användbart även för terminalrädda. Kanske går det på något sätt att knyta skriptet till en tangentbordsgenväg så att det söker på det som för tillfället finns i clipboard (tänk: markera ord, tryck kombination och få en zenityruta med synonymer).
Nåväl, här är vad jag har åstadkommit så långt:
Kod: Markera allt
#!/bin/bash
syn ()
{
lynx -dump \
"http://www.synonymer.se/?query=${conv}&btnS=Hitta+synonymer" \
| sed -e :a -e '$d;N;2,24ba' -e 'P;D' | grep ${1} -A 10 \
> /tmp/tempsyn.txt
if [[ -s /tmp/tempsyn.txt ]] ;then
until ! read response
do
echo "${response}"
done < /tmp/tempsyn.txt
else
echo "Ledsen $USER, kan inte hitta \"${1} \""
fi
rm -f /tmp/tempsyn.txt
}
conv=`echo $1 | iconv -f UTF8 -t ISO_8859-1`
syn $conv