以句号或分号结尾的列表行

fem*_*chi 5 unix linux

如何使用grep或egrep编写命令来显示文件中以分号";"或句号"."字符结尾的所有行.

Lee*_*ton 9

使用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]*$'将匹配后的任何数量的空格或制表符.;.