如何使用grep查找末尾带有单个数字的行?

时间:2014-04-09 09:58:44

标签: linux grep

这就是我的数据文件的样子:

  names   adress number score
  blabla  blabla 1212        5
  blabla  blabla 1212      4.5

我需要在行的末尾提取5行 当我尝试使用grep -e 5 $时,我也得到4.5行。 有什么想法吗?

3 个答案:

答案 0 :(得分:2)

你需要在5之前找到有空格的行吗?尝试空格字符\s

 grep -e \s5$

答案 1 :(得分:1)

与Evan的答案基本相似。只使用posix空格类而不是\ s:

grep -E "[[:space:]]5$"

答案 2 :(得分:0)

Evan的答案就是这样。为了完整起见,您还有其他方法:

sed:只打印以 space + 5结尾的那些。

$ sed -n '/\s5$/p' file
  blabla  blabla 1212        5

awk:只打印最后一个字段正好为5的字段。我使用"5",否则它将是一个数字比较,而05将匹配。

$ awk '$NF=="5"' file
  blabla  blabla 1212        5

grep:相同,但引用:

$ grep "\s5$" file
  blabla  blabla 1212        5