grep ".0000000" data > output
我在数据文本文件中提取所有以 .0000000 结尾的数字数据。当我使用通配符更改此代码时,如下所示:
grep ".[0-9][0-9][0-9][0-9][0-9][0-9][0-9]" data > output
上面的代码应该提取以点后任何七位数字结尾的所有数字数据,但它并没有按预期工作。如何修改上述代码以提取所有以点后任意七位数字结尾的数字数据?
grep ".0000000" data > output
我在数据文本文件中提取所有以 .0000000 结尾的数字数据。当我使用通配符更改此代码时,如下所示:
grep ".[0-9][0-9][0-9][0-9][0-9][0-9][0-9]" data > output
上面的代码应该提取以点后任何七位数字结尾的所有数字数据,但它并没有按预期工作。如何修改上述代码以提取所有以点后任意七位数字结尾的数字数据?
从您的描述中不清楚您的表达是无法匹配您想要的东西,还是匹配您不想要的东西。
如果是后者,那么可能是因为
.
在 grep 正则表达式中匹配任何单个字符(换行符除外 - 但是 grep 通常是基于行的)。要匹配文字点(句点),您需要将其转义\.
或将其放在字符集中,就像您对十进制数字范围所做的那样:您还提到该表达式应匹配“以”结尾的数据-尚不清楚您是指行尾还是单词边界-它们分别是
$
和\b
(或\>
) ex。您还可以使用量词缩短表达式 - 切换到扩展正则表达式 (ERE) 模式1:
1在 GNU grep 中,您可以通过转义大括号在基本正则表达式 (BRE) 模式下使用量词
grep "[.][0-9]\{7\}$"