Vi编辑器模式匹配

时间:2015-08-18 20:11:21

标签: regex linux unix vi

假设数据在日志文件中采用以下格式。

    *******************************************
      Refreshing token for  app foo1
    *******************************************
      Refreshing token for  app foo2
    *******************************************
      Refreshing token for  app foo3
      Update application with name: foo3
      Done
      Waiting 1 second
    *******************************************

此数据表示foo1和foo2的刷新令牌不完整,foo3的刷新令牌令牌已完成。

我需要将刷新令牌未完成的应用分开。

如何使用vi编辑器匹配foo1和foo2。感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

如果你正在使用vim,文件打开:

<Esc>       To go to command mode
:1 <Enter>  to go to line 1
/           Start a search
\d          a digit
\n          followed by a newline
\*          followed by an escaped splat
<Enter>     You will be positioned at the first match
n           go to the next match

左下角看起来像这样:

/\d\n\*

当然数字与您的测试数据相匹配,但您必须调整它以匹配您的实际数据。

答案 1 :(得分:0)

这也有效

 :set hlsearch
    /\*\{30,}\n\s\+Refreshing\stoken\sapp\s\a\a\a\d\n\*\{30,}
  • :set hlsearch突出显示搜索结果
  • * {30,}匹配包含特殊字符*的行超过30次
  • \ n匹配新行
  • \ s \ +多次匹配空白
  • \ a匹配角色
  • \ d匹配数字