단일 토큰이 포함된 파일의 이전 줄을 인쇄한 후 이제 요구 사항을 충족하기 위해 결과를 반복해야 합니다.

단일 토큰이 포함된 파일의 이전 줄을 인쇄한 후 이제 요구 사항을 충족하기 위해 결과를 반복해야 합니다.

다음 코드를 사용하여 단일 태그가 포함된 파일의 이전 줄을 인쇄합니다.

#! /bin/ksh

file=input.txt
while read line
do
awk 'NF == 1 { print LAST } { LAST=$0 }'
done < "$file"

이제 결과를 반복하고 줄 끝에 연속적인 홀수 위치가 있고 이러한 위치가 언급된 숫자와 일치하지 않을 때까지 9번째 위치, 11번째 위치, 13번째 위치 등을 확인해야 합니다.

201 
230 
197 
193 
229 
200 
215 
226 
001 
198 

오류는 로 인쇄되어야 하고 CORRUPTED, 그렇지 않으면 AVAILABLE인쇄되어야 합니다.

내 파일의 예는 다음과 같습니다.

59 6 18 2014 169 7 14 2 7671912 7849744 201 4
60 6 19 2014 170 5 49 2 7671912 7849744 201 5
61 6 20 2014 171 6 8 2 7671912 7849744 201 6
62 6 23 2014 174 5 3 2 7671912 7849744 201 7
63 6 23 2014 174 7 17 2 7671912 7849744 201 8
64 6 24 2014 175 16 13 2 7671912 7849744 201 9
65 6 25 2014 176 8 20 2 7671912 7849744 201 10
10
1 1 49 6 16 2014 7 39 201 1 0 1043 <au_launchpad_back.gif> 201 gif <SIZE> 871
1 2 49 6 17 2014 13 15 201 1 0 1043 <au_launchpad_back.gif> 201 gif <SIZE> 871
1 3 49 6 18 2014 1 38 201 1 0 1043 <au_launchpad_back.gif> 201 gif <SIZE> 871
1 4 49 6 18 2014 7 14 201 1 0 1043 <au_launchpad_back.gif> 201 gif <SIZE> 871
1 5 49 6 19 2014 5 49 201 1 0 1043 <au_launchpad_back.gif> 201 gif <SIZE> 871

이를 예로 들면 9위는 7671912 입니다.

참고: 이 코드는 다른 파일에서도 작동해야 합니다.

답변1

이 시도:

$ echo "65 6 25 2014 176 8 20 2 7671912 7849744 201 10" |
awk 'FNR == NR { a[$1]; next }
     {
         for (i = 9; i <= NF; i += 2) {
             if (!($i in a)) {
                 flag = 1;
             }
          }
          if (flag) {
              print "CORRUPTED";                  
          } else {
              print "AVAILABLE";                  
          }
     }
' file -
CORRUPTED

file비교할 모든 숫자를 포함합니다. echo "65 6 25 2014 176 8 20 2 7671912 7849744 201 10"이 테스트의 스크립트를 단일 토큰이 포함된 파일의 이전 줄을 인쇄하는 스크립트로 바꿔야 합니다 .

설명하다

  • FNR == NR { a[$1]; next }: 처리하는 동안 각 숫자를 배열에 file저장합니다 .filea
  • 읽은 후에는 filefield에서 시작하여 모든 홀수 필드를 반복 하고 9th배열에 없으면 필드 값을 a설정합니다 flag = 1.
  • 마지막으로 1로 설정되면 flag값이 에 없는 필드가 하나 이상 있다는 의미 file이므로 인쇄하고 CORRUPTED, 그렇지 않으면 인쇄합니다 AVAiLABLE.

관련 정보