使用grep/AWK从ASCII文件提取数据

使用grep/AWK从ASCII文件提取数据,awk,sed,grep,Awk,Sed,Grep,我有一个模拟的长ASCII日志文件,需要从中提取一些数据 我想要的行具有以下结构: Main step= 1 a= 0.00E+00 b=-6.85E-08 c= 4.58E-08 Fine step= 1 t=-1.31854E+01 短语“Main step”只在我想要的行中使用。这很容易grep,但我还想包括上一行之后的下一行,它的结构如下: Main step= 1 a= 0.00E+00 b=-6.85E-08 c= 4.58E-08 Fine s

我有一个模拟的长ASCII日志文件,需要从中提取一些数据

我想要的行具有以下结构:

 Main step=     1 a= 0.00E+00 b=-6.85E-08 c= 4.58E-08
 Fine step=     1 t=-1.31854E+01
短语“Main step”只在我想要的行中使用。这很容易grep,但我还想包括上一行之后的下一行,它的结构如下:

 Main step=     1 a= 0.00E+00 b=-6.85E-08 c= 4.58E-08
 Fine step=     1 t=-1.31854E+01
请注意,“精细步骤”用于日志文件中的其他位置

我的问题归结为:如何提取包含关键字/短语的行(此处为“主要步骤”),并确保使用grep或AWK或其他标准Linux程序获得下一行?

您可以使用

这只打印从
主步骤开始到
结束的范围内的行(通配符)。实际上,每一行都会打印出
主要步骤和以下内容。

您可以使用

这只打印从
主步骤开始到
结束的范围内的行(通配符)。实际上,每一行都会打印出
主要步骤和以下内容。

您可以使用

这只打印从
主步骤开始到
结束的范围内的行(通配符)。实际上,每一行都会打印出
主要步骤和以下内容。

您可以使用


这只打印从
主步骤开始到
结束的范围内的行(通配符)。实际上,每一行读到
主要步骤和以下内容的内容都会被打印出来。

根据标签张贴。通过awk的getline函数

awk '/Main step/{print; getline; print}' file

它将打印主步骤行和下一行。

根据标签张贴。通过awk的getline函数

awk '/Main step/{print; getline; print}' file

它将打印主步骤行和下一行。

根据标签张贴。通过awk的getline函数

awk '/Main step/{print; getline; print}' file

它将打印主步骤行和下一行。

根据标签张贴。通过awk的getline函数

awk '/Main step/{print; getline; print}' file
它将打印主步骤行和下一行。

因为您标记了“grep”,而且这是我最明显的解决方案:

grep -A1 'Main step' file
…虽然这将在匹配之间添加“-”。因此,要获得与awk和sed答案相同的输出:

grep -A1 'Main step' file | grep -v '^--$'
因为你标记了“grep”,而且这是我最明显的解决方案:

grep -A1 'Main step' file
…虽然这将在匹配之间添加“-”。因此,要获得与awk和sed答案相同的输出:

grep -A1 'Main step' file | grep -v '^--$'
因为你标记了“grep”,而且这是我最明显的解决方案:

grep -A1 'Main step' file
…虽然这将在匹配之间添加“-”。因此,要获得与awk和sed答案相同的输出:

grep -A1 'Main step' file | grep -v '^--$'
因为你标记了“grep”,而且这是我最明显的解决方案:

grep -A1 'Main step' file
…虽然这将在匹配之间添加“-”。因此,要获得与awk和sed答案相同的输出:

grep -A1 'Main step' file | grep -v '^--$'

完美的工作起来很有魅力!完美的工作起来很有魅力!完美的工作起来很有魅力!完美的工作起来很有魅力!