
入力があります
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
初期化されていない場合はc
0になるため、ファイルの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