2009-10-24 9 views
0

Voici un script de ligne de commande pour une recherche dans le dictionnaire en utilisant Wordnet:Affichage et conduite seulement une ligne de texte spécifique à partir d'un flux

#!/bin/bash 
# Command line look up using Wordnet - command line dictionary 

echo "Type in your word:" 
read word 

/usr/bin/curl -s -A 'Mozilla/4.0' 'http://wordnetweb.princeton.edu/perl/webwn?s='$word'&sub=Search+WordNet&o2=&o0=1&o7=&o5=&o1=1&o6=&o4=&o3=&h=' \ 
| html2text -ascii -nobs -style compact -width 500 | grep "*" 

type I dans « bonjour » voici la sortie:

Type in your word: 
hello 
**** Noun **** 
    * S:(n)hello, hullo, hi, howdy, how-do-you-do (an expression of greeting) "every morning they exchanged polite hellos" 

Je veux seulement la chaîne qui est après le S :, rien avant elle. Je veux supprimer les éléments suivants:

**** Noun **** 
    * S: 

En quittant ce pour la tuyauterie par lui-même ->

(n)hello, hullo, hi, howdy, how-do-you-do (an expression of greeting) "every morning they exchanged polite hellos" 

Répondre

0

J'ai un morceau de travail de code qui ajoute à la réponse de DigitalRoss:

#!/bin/bash 
# Command line look up using Wordnet - command line dictionary 

echo "Type in your word:" 
read word 

/usr/bin/curl -s -A 'Mozilla/4.0' 'http://wordnetweb.princeton.edu/perl/webwn?s='$word'&sub=Search+WordNet&o2=&o0=1&o7=&o5=&o1=1&o6=&o4=&o3=&h=' \ 
| html2text -ascii -nobs -style compact -width 500 | grep "*" | sed 's/^[^S]*S://' | grep -v "\*\*\*\* " 

Il supprime toute la mise en forme, je crois. Il supprime également les lignes **** Noun ****.

0

Je crois que si vous modifiez cette sed -e à faire s/^.*S:/ / ou peut-être, d'être prudent, s/^[^S]*S:// supplémentaire que vous obtiendra ce que vous voulez. Si la commande sed est en train de remplacer une tabulation (je ne peux pas dire) alors vous voudrez peut-être préserver cela ...

+0

Supprime le S :, mais pas le **** nom **** également. – user191960

0

Je ne sais pas ce que le grep "*" est destiné à faire, mais vous pouvez le changer en:

grep -Eo '\(.*' 
+0

grep "*" - récupère les définitions du site - sinon vous récupérez l'en-tête - ou d'autres informations inutiles. – user191960