Linux 如何grep数字范围

Linux 如何grep数字范围,linux,bash,grep,Linux,Bash,Grep,在文本文件中,我有以下条目: 10.1.0.10-15 10.1.0.20-25 10.1.0.30-35 10.1.0.40-45 我想打印10.1.0.10,15,20,25,30 cat file | grep 10.1.0.[1,2,3][0.5] -- prints 10,15,20,25,30, 35. 我该如何抑制35岁 我不想使用grep-v.35…只想打印特定的IP或#s。您可以使用: grep -E '10\.1\.0\.([12][05]|30)' file 但是,a

在文本文件中,我有以下条目:

10.1.0.10-15
10.1.0.20-25
10.1.0.30-35
10.1.0.40-45
我想打印
10.1.0.10,15,20,25,30

cat file | grep 10.1.0.[1,2,3][0.5] -- prints 10,15,20,25,30, 35.
我该如何抑制35岁

我不想使用grep-v.35…只想打印特定的IP或#s。

您可以使用:

grep -E '10\.1\.0\.([12][05]|30)' file
但是,awk将更具可读性:

awk -F '[.-]' '$4%5 == 0 && $4 >= 10 && $4 <= 30' file
10.1.0.10-15
10.1.0.20-25
10.1.0.30-35
awk-F'[.-]'$4%5==0&&$4>=10&&$4您可以使用:

grep -E '10\.1\.0\.([12][05]|30)' file
但是,awk将更具可读性:

awk -F '[.-]' '$4%5 == 0 && $4 >= 10 && $4 <= 30' file
10.1.0.10-15
10.1.0.20-25
10.1.0.30-35

awk-F'[.-]'$4%5==0&&$4>=10&&$4请注意,字符类中的
是不需要的-事实上,它们与您不希望模式匹配的数据相匹配。此外,字符类之外的
匹配任何字符(数字、字母或
),您需要使用反斜杠对其进行转义,以便它们只匹配实际的

此外,您正在犯(UUoC)错误
grep
可以很好地读取文件

至于要做什么,可能使用:

grep -E '10\.1\.0\.([12][05]|30)' file

它使用扩展正则表达式(以前用于
egrep
,现在用于
grep-E
)。它还避免了点与任何字符的匹配。

请注意,字符类中的
是不需要的-事实上,它们与您不希望模式匹配的数据相匹配。此外,字符类之外的
匹配任何字符(数字、字母或
),您需要使用反斜杠对其进行转义,以便它们只匹配实际的

此外,您正在犯(UUoC)错误
grep
可以很好地读取文件

至于要做什么,可能使用:

grep -E '10\.1\.0\.([12][05]|30)' file

它使用扩展正则表达式(以前用于
egrep
,现在用于
grep-E
)。它还避免了点与任何字符的匹配。

我不确定您是否只需要打印前两个IP,不包括35个IP。在这种情况下,
cat文件| grep“10.1.0.[1-3]0.[15 | 25]”
完成这项工作


请记住,您可以使用诸如
|
之类的条件表达式来帮助您。

我不确定您想要的是否只是打印前两个IP,不包括35个IP。在这种情况下,
cat文件| grep“10.1.0.[1-3]0.[15 | 25]”
完成这项工作


请记住,您可以使用诸如
|
之类的条件表达式来帮助您。

不清楚输出应该是什么样子。请清楚地显示
grep
现在在v
2.16
上,因此您应该从
升级到.35
,输出应该是什么样子还不清楚。请清楚地显示
grep
现在在v
2.16
上,因此您应该从
.35
升级您的
awk
变量对样本数据有效,但显然应该包括
$4%5==0
作为一个条件。谢谢,是的,这样会更安全。很高兴知道它成功了,您的
awk
变量对样本数据有效,但显然应该包括
$4%5==0
作为一个条件。谢谢,这样会更安全。很高兴知道它成功了,请注意您的
grep'10.1.0.[1-3]0.[15| 25]
将接受
10x1y0z20@
。x、y、z和
@
匹配,因为
匹配任何字符;
|
匹配,因为
|
在字符类
[…]
中没有特殊意义。即使在字符类之外,
|
也没有特殊意义,除非您使用
-E
选项启用扩展正则表达式或ERE。请注意,
grep'10.1.0.[1-3]0.[15 | 25]
将接受
10x1y0z20@
。x、y、z和
@
匹配,因为
匹配任何字符;
|
匹配,因为
|
在字符类
[…]
中没有特殊意义。即使在字符类之外,
|
也没有特殊意义,除非使用
-E
选项启用扩展正则表达式或ERE。