【问题标题】:How to use zgrep to display all words of a x size from a wordlist?如何使用 zgrep 显示单词列表中所有 x 大小的单词?
【发布时间】:2020-02-14 00:41:39
【问题描述】:

我想显示我的单词列表中所有以w 开头且长度为 9 个字母的单词。昨天我学到了更多关于如何使用zgrep 所以我来了:

zgrep '\(^w\)\(^.........$\)' a.gz

但这不起作用,我认为这是因为我不知道如何在两个条件之间执行AND。我发现它应该是 (?=expr)(?=expr) 但我不知道如何构建我的命令

那么如何使用(?=expr) 构建我的命令?

例如,如果我有一个这样的单词表:

  • 华盛顿
  • 香肠
  • Walalalalalaaaa --> 不应该匹配
  • Wwwwwwwww --> 应该匹配

【问题讨论】:

  • 可能是zgrep '^w[[:alpha:]]\{8\}$' a.gz?
  • 很遗憾没有,我试图按照你昨天告诉我的方法来逃避角色,但我不知道如何构建这个
  • 能否请您显示部分单词表和预期匹配项? '^w[[:alpha:]]\{8\}$' 应该匹配以 w 开头并包含 8 个字母的整行。
  • 哦,是的,现在可以了,我想我在抱歉之前犯了一个错误

标签: regex linux zcat zgrep


【解决方案1】:

你可以使用

zgrep '^w[[:alpha:]]\{8\}$' a.gz

POSIX BRE pattern 将匹配一个字符串

  • ^w - 以 w 开头
  • [[:alpha:]]\{8\} - 然后有八个字母
  • $ - 后跟字符串结束标记。

另外,请参阅9.3 Basic Regular Expressions

【讨论】:

    猜你喜欢
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 2015-06-10
    • 2011-12-03
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多