Unix命令使用grep指定模式

时间:2013-02-12 23:28:12

标签: unix grep command

我有一个名为LastNames.txt的文件,其中列出了100个姓氏,其中受欢迎程度的百分比从0到100。 问题是如何使用grep创建包含仅0.000百分之流行度的姓氏的新文件。 注意:我使用Unix命令,这是我使用的代码:

grep '0.000' LastNames.tab > unpopularNames.tab

当我使用这个命令时,我会得到一些比0.000更高的姓氏。

3 个答案:

答案 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