0

这是使用 Wordnet 进行字典查找的命令行脚本:

#!/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 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"

我只想要 S: 之后的字符串,之前什么都没有。我想删除以下内容:

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

将其自行留作管道->

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

3 回答 3

0

我相信,如果你改变它sed -e来做s/^.*S:/ /,或者更加小心,s/^[^S]*S://你会得到你想要的。如果 sed 命令正在替换一个选项卡(我不知道),那么您可能想要保留它......

于 2009-10-24T05:48:04.610 回答
0

我不知道grep "*"它打算做什么,但您可以将其更改为:

grep -Eo '\(.*'
于 2009-10-24T07:24:09.847 回答
0

我有一段代码在工作,增加了 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 "\*\*\*\* "

它删除了我相信的所有格式。它也删除了**** Noun ****线条。

于 2009-10-24T10:26:35.027 回答