寻找一个例如 bash 解决方案来检查英语动词词形变化

寻找一个例如 bash 解决方案来检查英语动词词形变化

您好,我对发布的解决方案感兴趣这里& 将建议的函数bash script放在~/.binsodir下的a 中path。然后执行$chmod +x verbteacher.sh以便从命令行$中的任何位置轻松调用,但它不起作用。我尝试过,有点,重新开放这个问题并尝试了遵循上述答案的建议,有点紧密并将函数放入文件中,.bashrc但它仍然对我不起作用(而且它似乎不是最好的(练习(对不起)))所以特此寻求更多帮助。我会很感激。

答案1

该函数(直接来自那个答案,仅进行很小的修改):

verbteacher () { 
    wget -qO - http://conjugator.reverso.net/conjugation-english-verb-"$1".html | \
    sed -n "/>Preterite\|>Past</{s@<[^>]*>@ @g;s/\s\+/ /g;/e I/s/.* I \([^ ]*\) you .*/Simple past: \1/;/ Past/s/ Past /Past participle: /;p}" ; 
 }

这可以放入您的.bashrc文件中,该文件可以为任何新的shell 已启动(不是当前 shell 会话)。

您还可以将其转换为脚本:

#!/bin/sh

wget -qO - http://conjugator.reverso.net/conjugation-english-verb-"$1".html | \
sed -n "/>Preterite\|>Past</{s@<[^>]*>@ @g;s/\s\+/ /g;/e I/s/.* I \([^ ]*\) you .*/Simple past: \1/;/ Past/s/ Past /Past participle: /;p}" 

这应该保存到一个可执行文件中,并放置在$PATH.

注意:我没有仔细查看这段代码实际上做了什么。或许还可以进一步改进。这个答案是关于实际使用所提供的功能的问题。

答案2

如果您想要词形变化(在链接地址上,在/conjugations/您可以选择所需的语言之后,在我的例子中我选择了 french /fra/)值,请将其写在最后一行.bashrc

conjfra () {
    curl -s "http://api.ultralingua.com/api/2.0/conjugations/fra/$1" | jq -r '.[] | {tense: .conjugations}'
}

谢谢!编辑:我的错!抱歉,我忘记在第二行添加制表符空格开始,现在是正确的。

答案3

我找到了一个处理共轭的 API。我创建了这个函数来查询它,但它需要jq.另外,输出相当冗长,但我确信jq比我更了解的人可以简化它:

verbteacher () {
    curl -s "http://api.ultralingua.com/api/conjugations/eng/$1" | jq '.[] | {tense: .partofspeech.tense, verb: .surfaceform}'
}

用法:

$ verbteacher run
{
  "tense": "infinitive",
  "verb": "run"
}
{
  "tense": "pastparticiple",
  "verb": "run"
}
{
  "tense": "presentparticiple",
  "verb": "running"
}
{
  "tense": "present",
  "verb": "run"
}
{
  "tense": "present",
  "verb": "run"
}
{
  "tense": "present",
  "verb": "runs"
}
....

相关内容