这个 GREP 有什么问题?

What is wrong with this GREP?

这是我的文本文件:

line A
line B
line C

现在我试图找到以 A:

结尾的行
cat foo.txt | grep 'A$'

顺便说一句:

$ grep --version
GNU grep 2.6.3

你的 grep 命令没有问题。但是在最后一个 A 之后可能存在 space 个字符。所以使用下面的 grep 命令。

grep 'A\s*$' file

\s 匹配任何类型的水平或垂直白色space 字符。

您可以使用 POSIX 字符 class [[:space:]] 来匹配任何类型的 space 字符。

grep 'A[[:space:]]*$' file

如果最后一个字符始终是单个字符,awk 应该这样做:

awk '$NF=="A"' file
line A

它测试最后一个字段是否等于 A
如果在最后一个字符后隐藏 spaces/tabs,这也将起作用。