我有一个名为的文件LastNames.txt
,其中列出了 100 个姓氏,流行度百分比从 0 到 100。问题是如何使用grep
创建新文件,其中包含仅流行度百分比的姓氏0.000
。注意:我使用 Unix 命令,这是我使用的代码:
grep '0.000' LastNames.tab > unpopularNames.tab
当我使用这个命令时,我得到一些百分比大于 0.000 的姓氏。
当您真正想要的是算术比较时,没有理由尝试让 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
我建议使用-F
and-w
标志对整个单词进行固定的字符串匹配:
grep -Fw 0.000 file
来自男人grep
:
-F,--固定字符串
将 PATTERN 解释为固定字符串的列表,由换行符分隔,其中任何一个都将被匹配。(-F 由 POSIX 指定。)
-w, --word-正则表达式
仅选择那些包含构成整个单词的匹配项的行。测试是匹配的子字符串必须在行首,或者前面有一个非单词组成字符。同样,它必须位于行尾或后跟非单词组成字符。构成单词的字符是字母、数字和下划线。
演示:
$ 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