일치 후 두 번째 줄에서 인쇄하는 방법은 무엇입니까?

일치 후 두 번째 줄에서 인쇄하는 방법은 무엇입니까?

입력이 있습니다

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이 주어지면 두 번째 줄부터 인쇄하는 방법은 무엇입니까?

구문 오류입니다.

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

다음 두 개는 작동하지 않습니다.

감사해요

원하는 출력:

  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

내가 당신의 의도를 정확하게 이해했다면

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

패턴이 일치하면 c현재 줄 번호로 설정되고, 패턴이 일치하는 줄 다음의 두 번째 줄 FNR보다 크거나 같으면 첫 번째 필드가 인쇄됩니다. c+2초기화되지 않으면 c0이 되므로 파일의 두 번째 줄 전체를 인쇄하지 않으려면 추가 조건을 추가합니다 && 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

관련 정보