如何grep每行的最后一个字符?

如何grep每行的最后一个字符?

我想 grep 所有末尾包含 _P 的行。

例如,一个文件可能包含

stuff_C
stuff_P
things_C
things_P
stu_P_ff
thi_P_ngs

我只想捕获stuff_P并发things_P送到标准输出

答案1

您可以使用 ”锚定字符“ 为了达成这个。

grep "[[:print:]]*_P$" file.txt

或者,更简单(根据 @JeffSchaller 的评论)

grep "_P$" file.txt

应该达到你想要的。

答案2

一个简单的示例 - 发现一个无效的 CNAME 条目,并且末尾有一个额外的空格。忽略注释行( ;; 在 bind 中)

DNSint04 # cat /var/named/internal/db.abanet.org | DNSint04 # cat /var/named/internal/db.abanet.org | grep -v ^; | grep -i cname | grep -i cname | grep -i cname grep -v ".$"

aba-sepm-z IN CNAME sepm-z abavideo
IN CNAME vidxxxxchifw01.abanet.org。

DNSint04#

相关内容