使用grep(和egrep)美元符号($)匹配行的结尾,并且carret(^)匹配行的开头.因此,例如,如果您想匹配包含单词"fish"而没有其他字符的行,您可以使用此:
grep '^fish$'
Run Code Online (Sandbox Code Playgroud)
使用单引号来包装搜索表达式非常重要,这样bash就不会对它做任何有趣的事情.
因此,要回答您的问题,您需要使用搜索模式'[.;]$'来匹配一个.或一个;字符后跟一个行尾字符.我使用它作为示例测试文件:
$ cat testfile
one
two;
three.
four:
Run Code Online (Sandbox Code Playgroud)
这是结果:
$ grep '[.;]$' testfile
two;
three.
Run Code Online (Sandbox Code Playgroud)
如果您还想允许空格在该行的末尾,然后用这个模式:'[.;][ \t]*$'将匹配后的任何数量的空格或制表符.或;.