マッチ後に2行目に印刷する方法は?

マッチ後に2行目に印刷する方法は?

入力があります

text and numbers
 name of section

      72.01043451      0.013887  0.8416
      64.76001571      0.015442  0.8556

1ドルを印刷したい

/  name of section/ { in_f_format=1; next}
(in_f_format & FNR==2) {print($1)}

空白行と$ 1が与えられたら、2行目から印刷する方法は何ですか?

構文エラーです。

/  name of section/ { in_f_format=1; next}
(in_f_format & FNR==2) {print($1)}

次の2つは機能しません。

ありがとう

希望の出力:

  72.01043451
  64.76001571

答え1

存在するawk

$ awk '/name of section/ { line = FNR + 2 } line != 0 && FNR >= line { print $1 }' file
      72.01043451
      64.76001571

lineここでは、パターンを検出して印刷したい行(FNR + 2「この行に2行を加えた」という意味)に変数を設定します。指定された行に達すると印刷されます。

答え2

自分の意図を正確に理解したら

/  name of section/ { c=FNR;}
(FNR-c>=2 && c>0) {print $1} 

パターンが一致するとc現在の行番号に設定され、パターンが一致する行の後の2行目以上である場合は最初のFNRフィールドが印刷されます。c+2初期化されていない場合はc0になるため、ファイルの2行目全体を印刷したくない場合は、追加条件を追加してください&& c>0

答え3

テストを経てうまく機能しました

awk '/name of section/{x=NR+3}(NR<=x){print}' l.txt | awk 'NR>2{print $1}' filename
72.01043451
64.76001571

関連情報