grep with wildcard symbols
用grep进行通配符搜索
我有一个包含许多IP地址的文件。我想列出文件中的所有IP地址,并使用模式192.16*的grep,但它没有显示整个IP地址列表。我只能在使用句点和星号符号的同时列出整个IP地址。所以我怀疑为什么第二个选项不起作用,而第三个选项起作用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | root@test:~/test# cat z 192.168.1.0 192.168.2.0 192.168.110.7 192.168.115.5 1. root@test:~/test# grep -o 192.1 z 192.1 192.1 192.1 192.1 2. root@test:~/test# grep -o 192.1* z 192.1 192.1 192.1 192.1 3. root@test:~/test# grep -o 192.1. z 192.16 192.16 192.16 192.16 4. root@test:~/test# grep -o 192.1.* z 192.168.1.0 192.168.2.0 192.168.110.7 192.168.115.5 |
为什么你的工作是:(一)命令
1 | 1. root@test:~/test# grep -o 192.1 z |
1 | 2. root@test:~/test# grep -o 192.1* z |
只有
1 | 3. root@test:~/test# grep -o 192.1. z |
1 | 4. root@test:~/test# grep -o 192.1.* z |
任何线将开始与
IP地址的正则表达式
你可以找到很多网站的IP地址的正则表达式的计算器的例子,这是国有企业的问题。然而,值得注意的是,有些用来表达只有IP地址匹配,因此包含的开始端(
-
点(
. )匹配任何字符,你有\. 逃避它。 -
-o 节目只有部分匹配,如果你ommit.* (从端)的任何字符),它将ommit休息线(这是不匹配的字符串的一部分)。 -
.* CAN比赛很多比你更需要它将匹配的其余线优惠),你说:[0-9.]* 已经明确允许。 -
确保你把单引号在搜索中的表达
'192.168\.[0-9.]*' 壳,否则将解释特殊字符,和替代的表达与匹配的文件名(luckily You didn’t有任何匹配的文件名)。 -
你可能只想搜索的词语是(
-w )。如果你想确保你的IP地址和不匹配的唯一的东西,它resembles(在相邻点位,4≤255项,……)你会需要很多更复杂的表达。