使用grep查找一组数字之间的行

时间:2014-06-02 03:51:35

标签: unix grep

我正在为我的班级做一个Unix任务,我遇到了一些问题。我们正在尝试输出数字在20-30之间的行。

有没有办法使用grepegrep,以便您可以输出具有限制数字的行,例如20到30之间的数字或小于25的数字?

4 个答案:

答案 0 :(得分:1)

这应该做:

grep '\(^\|\D\)\(2[0-9]\|30\)\(\D\|$\)' input

或类似地:

grep '\(^\|[^0-9]\)\(2[0-9]\|30\)\([^0-9]\|$\)' input

-P标志:

grep -P '(^|[^0-9])(2[0-9]|30)([^0-9]|$)' input

所以基本上,想一想你想要匹配的可能字符串并将它们表达为模式。

答案 1 :(得分:1)

您可以将这个简单的grep与正则表达式

一起使用
$-grep  -wE '(2[0-9]|30)' file_name

答案 2 :(得分:0)

要获取20-30之间的值,可以使用此

egrep -e "[^0-9]2[0-9][^0-9]" -e "[^0-9]30[^0-9]" <file_name>

答案 3 :(得分:0)

您可以尝试以下命令:

 grep -wE '\b[2]{1}[0-9]{1}\b|30' file

说明:

[2]{1} --> find a number starting with one 2
[0-9]{1} --> The "2" is follored by any number but only repeated once
|30 --> And also finds "30" number.