awk를 사용하여 텍스트 파일의 처음 6줄/줄 건너뛰기

awk를 사용하여 텍스트 파일의 처음 6줄/줄 건너뛰기

텍스트 파일(input.txt)에서 처음 6줄을 건너뛰고 awk를 사용하여 나머지를 처리하려면 어떻게 해야 합니까? 내 awk 스크립트(program.awk)의 형식은 다음과 같습니다.

BEGIN {
} 

{ 
process here
} 

END {

}

내 텍스트 파일은 다음과 같습니다.

0
3
5
0.1 4.3
2.0 1.5
1.5 3.0
0.3 3.3
1.5 2.1
.
.
.

다음에서 파일 처리를 시작하고 싶습니다.

0.3 3.3
1.5 2.1
.
.
.

답변1

다음 두 가지 모드 중 하나를 사용하세요.

NR>6 { this_code_is_active }

아니면 이거:

NR<=6 { next }
{ this_code_is_active }

awk에 대한 인수로 많은 파일이 있고 각 파일에서 6줄을 건너뛰려면 NR 대신 FNR을 사용하십시오.

답변2

노력하다:

awk 'FNR > 6 { #process here }' file

답변3

head또는 프로그램을 사용하여 파일의 시작이나 끝 부분에서 원하는 만큼의 행을 건너뛸 수도 있습니다 tail.

귀하의 구체적인 질문에 대해서는

tail input.txt -n+7 | program.awk

program.awk파일이 실행 가능 하다면 괜찮습니다 . 그렇지 않으면 다음을 사용할 수 있습니다.

tail input.txt -n+7 | awk -f program.awk

이렇게 하면 각 행을 비교할 필요가 없고 AWK 코드의 논리를 변경할 필요도 없습니다.

tail텍스트는 일곱 번째 줄부터 스트리밍되며 처음 여섯 줄은 건너뜁니다.

이는 특히 캐싱으로 인해 텍스트 처리가 사소한 경우 성능에 큰 영향을 미치지 않습니다. 하지만 긴 파일을 사용하고 클라우드 환경에서 재사용하면 일부 비용 절감 효과가 있을 수 있습니다.

답변4

for pkg in $(pip list | awk 'FNR > 2 { print $1 }'); do pip install --upgrade $pkg; done

관련 정보