linux 正则表达式学习

本篇主要学习几个正则表达式匹配符:

  • ^:锚定行首
  • $:锚定行尾
  • \< 或者 \b:锚定词首
  • \>或者 \b:锚定词尾
  • \B:匹配"非单词边界"

下面通过实验彻底掌握:

测试文件内容如下:

复制代码
cat test.txt
clike 复制代码
10.213.148.53   1c83-4180-11f9  19        D-0         Eth-Trunk49
10.213.148.55   1c83-417f-f31a  18        D-0         Eth-Trunk48

10.213.148.58   e861-1a1f-f2b1  11        D-0         Eth-Trunk45
10.213.148.59   e861-1a1f-f498  14        D-0         Eth-Trunk44


10.213.148.5    b00c-d13a-8d8d  17        D-0         Eth-Trunk48

筛选以10.213.148.53 开头的行,使用 ^ 锚定行首:

筛选以Eth-Trunk48 结尾的行,使用 $ 锚定行尾:

使用 ^$ 结合筛选空白行 配置 -v 反选可以筛选出非空白的行

筛选以e861 开头的行,使用\< 或者 \b 锚定词首

筛选以8d8d结尾的行,使用 \>或者 \b锚定词尾

筛选以单词e861-1a1f-f498开头结尾的行,使用"\>e861-1a1f-f498\<" 或者"\be861-1a1f-f498\b"

筛选不以单词10.213.148.5开头或者结尾的行