0

我试图找出几种语言中不同的三个元音组合的数量。使用 grep 我隔离了文本文件中出现的三个元音。这是我使用的代码:

'[aeuioj]{3}' *file name* -o 

我发现以前有人这样做过,请参见下面的链接

如何使用 egrep 列出与正则表达式匹配的单词?

只是现在我需要从输出中过滤掉所有重复,这应该会给我一个给定语言中所有三个元音组合的列表。我对 grep 很陌生。

谢谢,

StWS

4

1 回答 1

1

您可以在这里使用 grep + perl + uniq 组合:

cat words.txt | grep -E '[aeiou]{3}' | perl -pe 's/(.*)([aeiou]{3})(.*)/$1$2$3 $2/' | uniq -f 1

它的作用是:

  1. Grep 正在过滤,因此只显示具有 3 个相邻元音的单词
  2. Perl 正在提取这 3 个元音并将它们放在一行的末尾(在空格之后)。例如:

    $ echo "gooad" | perl -pe 's/(.*)([aeiou]{3})(.*)/$1$2$3 $2/'
    goood ooa
    
  3. Uniq -f 1 比较第二列(在空格之后)并仅选择唯一行。
于 2013-02-28T12:06:18.797 回答