grep 给出不正确的结果

grep giving incorrect results

我有一个文本文件,其中包含行尾有数值的行。当我执行命令 cat *.txt | grep 'MOS-LCNB:1.' 时,我希望只有 1. 的值,但由于某种原因它显示 100.0.

MOS-LCNB:1.23
MOS-LCNB:1.41
MOS-LCNB:1.83
MOS-LCNB:100.0
MOS-LCNB:1.19
MOS-LCNB:1.39
MOS-LCNB:100.0
MOS-LCNB:100.0

当我编写 python 脚本并执行 re.search 时出现同样的问题。

grep(和Python re.search)给出了正确的结果。不过,您需要了解正则表达式。

. 表示 "any character"。要匹配句点,请使用 \.:

cat *.txt | grep 'MOS-LCNB:1\.'

那是因为.匹配除换行符以外的任何字符。

要匹配文字句点,您需要在其前面加上反斜杠。

grep 'MOS-LCNB:1\.'

Ideone Demo