我有一个名为LastNames.txt
的文件,其中列出了100个姓氏,其中受欢迎程度的百分比从0到100。
问题是如何使用grep
创建包含仅0.000
百分之流行度的姓氏的新文件。
注意:我使用Unix命令,这是我使用的代码:
grep '0.000' LastNames.tab > unpopularNames.tab
当我使用这个命令时,我会得到一些比0.000更高的姓氏。
答案 0 :(得分:2)
尝试这样做:
grep '\b0\.000\b' LastNames
.
表示<{3}} \.
表示文字 .
\b
表示字边界 答案 1 :(得分:1)
当你真正想要的是算术比较时,没有理由让grep做一个RE比较:
$ cat file
PEACE 0.003
GAGLIARDI 0.001
ZUPAN 0.000
ZUCHOWSKI 0.000
$ awk '$NF == 0' file
ZUPAN 0.000
ZUCHOWSKI 0.000
答案 2 :(得分:0)
我建议使用-F
和-w
标志对整个单词进行固定字符串匹配:
grep -Fw 0.000 file
来自人grep
:
-F, - 固定字符串
将PATTERN解释为固定字符串列表,以。分隔 换行符,其中任何一个都要匹配。 (-F由...指定 POSIX)
-w, - word-regexp
仅选择包含整体匹配的行 话。测试是匹配的子字符串必须是 在行的开头,或前面是非单词 组成性质。同样,它必须在最后 该行或后跟非单词构成字符。 单词构成字符是字母,数字和 下划线。
演示:
$ cat file
error 0E000
top 100.000
middle 50.000
lower 25.000
bottom 0.000
# Orignal over matching grep
$ grep 0.000 file
error 0E000
top 100.000
middle 50.000
bottom 0.000
# With correct flags only right lines are matched
$ grep -Fw 0.000 file
bottom 0.000
注意:您可以使用fgrep
代替grep -F
:
fgrep -w 0.000 file