Regex 白鹭:这条线以

Regex 白鹭:这条线以,regex,linux,Regex,Linux,我尝试使用egrep命令grep所有以结束的行。 然而,我没能做到 例如: $ cat file c f t e, u y r s p I y p A w p d. R i G e w o a l n o v s. P G e a o c f s p k e i c w a p p e. $ od -c file 0000000 c f t e , u y r s 0000020 p

我尝试使用egrep命令grep所有以结束的行。 然而,我没能做到

例如:

$ cat file
c f t e, u y r s p  I y
p A w p d. R i
G e w o a l n o v s.
P G e a o c f s p
k e i c w a p p e.

$ od -c file
0000000   c       f       t       e   ,       u       y       r       s
0000020       p           I       y  \r  \n   p       A       w       p
0000040       d   .       R       i  \r  \n   G       e       w       o
0000060       a       l       n       o       v       s   .  \r  \n   P
0000100       G       e       a       o       c       f       s       p
0000120  \r  \n   k       e       i       c       w       a       p
0000140   p       e   .  \r  \n
0000146
它没有给我正确的输出

还尝试使用$来锚定点,\r\n但它们都不起作用。
任何建议都会有帮助。

您的文件是DOS格式(带回车符/换行符结尾)。首先将其转换为unix格式并使用

$ egrep '.*\.' file
p A w p d. R i
G e w o a l n o v s.
k e i c w a p p e.
或者保持文件不变并搜索文本回车

egrep '\.$'
(使用bash欺骗,因为grep不理解
\r


egrep.*\.
只在任何地方查找包含
的所有行。

您应该开始将文件转换为Unix格式:

egrep $'\\.\r$'
然后,您可以简单地使用以下说明:

dos2unix file

也许你可以解释一下,
$”…“
是Bash shell的特技。我想这对你来说没问题吧?在Stackoverflow上,你可以给人们有用的答案来感谢他们,并从所有答案中选择任何一个。
egrep "[.]$" file