gpt4 book ai didi

regex - 在 Linux 中使用正则表达式和 grep 在文件中查找字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:51 25 4
gpt4 key购买 nike

我正在尝试在文件 text.txt 上找到合适的正则表达式以与 grep 命令一起使用。

问题

  1. 查找文本中所有出现的具有子字符串 ad、bd、cd、dd、ed 的单词。

  2. 找出所有出现次数 > 100 的数字

  3. 找出所有大于 100 且包含数字 0 或 5 的数字

我的方法

  1. grep -io '[a-e]*d' 文本

    打印带有正确子字符串的单词,但不打印整个字符串/单词。

    ad
    d
    d
    ed
    d
    d
    ed
    d
    d
    d
    d
    ed
    d
    d
  2. grep -io '[199][1-9]*' 文本

    我相信我在正则表达式上还有很长的路要走,但它仍然打印出正确的结果。

    1973
    197
    17775
  3. grep -io '[05][1-9]*' 文本

    这是 2. 的延续,所以我不理解 3. 中的 2. 部分,但我相信我的字符串包含数字 0 或 5 是正确的。

    0
    0
    0
    5

最佳答案

A) 查找文本中所有出现的具有子字符串 ad、bd、cd、dd、ed 的单词。

grep -ow '.*\(a\|b\|c\|d\|e\)d.*' text

egrep -ow '.*(a|b|c|d|e)d.*' text

B) 找出所有出现的数字 > 100

grep -ow '[1-9][0-9][0-9]\+' text

C) 找出所有大于 100 且包含数字 0 或 5 的数字

grep -ow '[1-9][0-9][0-9]\+' text | grep '\(0\|5\)'

grep -ow '[1-9][0-9][0-9]\+' text | egrep '(0|5)'

我正在使用选项 -o 在它自己的行上输出每个匹配项,而不是在找到模式的整行以及指定的选项 -w匹配前后应该是一个单词边界。

关于regex - 在 Linux 中使用正则表达式和 grep 在文件中查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29175461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com