【问题标题】:how to optimize a wordlist for the english language如何优化英语单词表
【发布时间】:2011-03-10 09:57:42
【问题描述】:

我正在寻找使用 sed 或类似的 linux 应用程序优化英语单词列表。为了做到这一点,我需要:

删除包含除 a-z、0-9 或特殊字符之外的任何内容的行

删除网址 - 可能检测到“\”字符

删除长度超过 16 个字符和 4 个字符或更短的行。 (5-16 个字符)

最好在 sed =)

谢谢!

【问题讨论】:

  • 以后你可以使用gskinner.com/RegExr 来构建正则表达式。另外,使用它将教如何从头开始制作它们。

标签: regex linux string text sed


【解决方案1】:
sed -nr '/^[[:alnum:]]{5,16}$/p' words
  • -n 表示默认不打印行
  • -r 表示使用“扩展”正则表达式

sed 命令是:

  • /.../ 当我们有匹配的东西时
    • ^...$ 整行只包含
      • [...] 的字符类:
        • [:alnum:] 字母数字字符
      • {5,16} 5 到 16 次
  • p 然后我们打印出来

【讨论】:

  • 有没有办法也包含自定义字符?
  • 只需将它们包含在字符类中,例如:[[:alnum:]{}+&%]
【解决方案2】:

基于匿名:

egrep '^[a-zA-Z0-9{other allowed characters here}]{4,16}$'

【讨论】:

  • 在 sed 中有没有办法做到这一点?
【解决方案3】:
perl -ne "print if /^[a-zA-Z0-9{other allowed characters here}]{4,16}$/"

【讨论】:

  • 在 sed 中有没有办法做到这一点?
猜你喜欢
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 2020-01-25
  • 2019-02-23
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 2016-07-18
相关资源
最近更新 更多