匹配单词
\bA.{5}T\b
- 简写式\b匹配单词边界,不消耗任何字符;
- 字符A和T限定了字符序列的首尾字母;
- .{5}匹配任意五个字符;
- 简写式\b匹配单词的另一个边界。
用sed为文本加标签
echo Hello | sed s/Hello/Goodbye/
运行的过程应该如下:
- echo命令将在标准输出设备(通常是屏幕)中打印单词Hello,竖线符(|)将打印内容通过管道传到之后的sed命令; + 管道将echo的输出转为sed的输入;
- sed的s命令将单词Hello变为Goodbye,而Goodbye就显示在屏幕上了。
运行命令
sed -n 's/^/<h1>/;s/$/<\/h1>/p;q' rime.txt
而输出就是:
<h1>THE RIME OF THE ANCYENT MARINERE, IN SEVEN PARTS.</h1>
以下是正则表达式处理器的工作过程解析。
- 首先调用sed程序。
- sed默认的操作是直接复制每行输入并输出,-n选项覆盖了该默认操作。之所要覆盖默认操作,是因为我们只想让正则表达式影响第1行。 +
s/^/<h1>/
在行的开头(^)添加<h1>
标签。 - 分号(;)用于分隔命令。
-
s/$/<\/h1>/
在行的结尾($)添加</h1>
标签。 - 命令p会打印受影响的那一行(第1行)。与-n不同,后者会打印所有行。 •
- 最后命令q会结束程序,这样sed程序就只会处理第1行。
- 所有的操作都是针对rime.txt文件执行的。