gpt4 book ai didi

linux - 显示文件中正则表达式超过 'n' 次的行

转载 作者:太空宇宙 更新时间:2023-11-04 05:33:29 25 4
gpt4 key购买 nike

我有文件 - abc.txt,格式如下 -

a:,b:,c:,d:,e:,f:,g:
a:0;b:,c:3,d:,e:,f:,g:1
a:9,b:8,c:6,d:5,e:2,f:,g:
a:0;b:,c:2,d:1,e:,f:,g:

现在在unix中,我只想获取正则表达式:[0-9](冒号后跟任意数字)存在超过2次的那些行。或者换句话说,显示至少有 3 个属性具有数值的行。

输出应该只有第二行和第三行

a:0;b:,c:3,d:,e:,f:,g:1
a:9,b:8,c:6,d:5,e:2,f:,g:

最佳答案

使用基本的grep:

grep '\(:[[:digit:]].*\)\{3,\}' file

:[[:digit:]].* 匹配冒号后跟数字和零个或多个任意字符。该表达式被放入子模式中:\(...\)。表达式 \{3,\} 表示前一个表达式必须出现 3 次或以上。

使用扩展的 posix 正则表达式,可以写得更简单一些,不需要转义 ({:

grep -E '(:[[:digit:]].*){3,}' file

关于linux - 显示文件中正则表达式超过 'n' 次的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57361419/

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