Linux正则表达式-定位元字符


有两个元字符用于指定字符串出现在行首或行末。脱字符(^)是指示开始的单字符正则表达式。美元符号($)是指示行结尾的单字符的正则表达式。这些通常称为"定位符",因为它们将匹配限定在特定位置。例如,可以使用以下表达式打印以First开始的行:
^First
没有^元字符,这个表达式将打印包含First的任意行。

通常,使用VI输入要由troff处理的文本,并且不想让空格出现在行的结尾。如果想找到(并删除)它们,下面的正则表达式可以匹配在结尾处有一个或多个空格的行:
□□*$

Troff请求和宏必须在行的开始处输入。它们是两个字符的字符串,前面带有一个句点。如果请求或宏有一个参数,那么它通常后面跟有一个空格。用于搜索这样的请求的正则表达式是:
^\...□

这个表达式匹配"行首有一个句点,随后跟有两个字符的字符串,然后是一个空格的行"。
可以使用两个连续的定位元字符来匹配空行,即:^$

可以使用这种模式计算文件中的空行数,在grep中使用计数选项-c:

$ grep -c '^$' ch04
5

如果想使用sed来删除空行,那么这个正则表达式很有用。下面的正则表达式可用于匹配空行,即使其中包含空格:
^□*$

相关内容