使用awk检测//作为标头标记的结尾

时间:2015-05-04 05:35:23

标签: regex bash parsing awk

目前我正在使用以下命令解析脚本

离子并且在文件中它应该只来自第一个数字(在这种情况下为5)。第一个文件始终以模式[numeric]开头。

还有一个快速的任务:是否可能还有一些额外的方法可以在同一个目标中查看所有这些数字中的数字?

1 个答案:

答案 0 :(得分:1)

您可以使用一个非常简单的状态机来完成此操作 - 只有两种状态:标题或正文。

curfile != FILENAME{body=0;curfile=FILENAME}
!body && /^\/\/$/    {body=1}
body  && /^\[/       {print > "first_"FILENAME}
body  && /^(seg|pos)/{print > "second_"FILENAME}
body  && /^[01]+/    {print > "third_"FILENAME}

首先,只要文件名发生变化(body最初将被取消设置),将curfile设置为零/ false,并在看到标题分隔符时将其切换为一个/ true。其他规则仅适用于体内。

要从第一组线中提取第一个括号中的数字,使用此简单模式,您只需使用substrindex string manipulation functions即可。类似下面的事情应该做:

body  && /^\[[0-9]+\]/ {
  print > "first_"FILENAME
  print substr($0, 2, index($0,"]")-2) > "fourth_"FILENAME
}