0

我确信这里对我的问题有非常简单的解释,但这让我感到困惑。

我正在使用 centos 标准 grep 在文件中搜索以下字符串:

0.000 kB / 0.0 sec

我很确定我以前做过一百万次,从来没有遇到过问题,但现在我明白了:

grep "0.000 kB / 0.00 sec" flash.log

672.881 kB / 0.95 sec

问题不是“/”,因为我也试过这个:

grep "000" flash.log

672.881 kB / 0.95 sec

据我了解, 0 无论如何都不是特殊字符,即使它似乎在这里反应为一个?

我知道我可以用这个来解决这个问题:

grep -e "0.000 kB / 0.00 sec" flash.log

但是只是不明白使用 -e 表示模式有什么区别,或者 0 的意义是什么,或者 grep 是如何解释它的?

4

1 回答 1

4

您最初匹配的行可能有一个^Mas 行结尾。cat -A通过or lessor管道输出您的 grep 输出hd以实际查看您得到的内容,而不是让您的终端解释它。因为^M表示回车(而不是换行,谢谢 Carl),所以光标跳到行首并覆盖实际匹配。这是我的示例 flash.log,其行为与您描述的一样:

0.000 kB / 0.00 sec^M672.881 kB / 0.95 sec

vi -b用或来查看cat -A

于 2013-01-17T22:02:43.347 回答