awk 스크립트에 매개변수 삽입

awk 스크립트에 매개변수 삽입

이 코드가 있습니다.매개변수를 추가하고 싶습니다.(공항명)코드에. 따라서 공항 이름이 주어지면 동일한 출력을 얻지만 주어진 매개변수만 사용합니다.

암호:

항공편 지연 비율, 총 지연 항공편 수, 요일별 총 항공편 수를 확인하세요.

BEGIN { FS = OFS = "," }
FNR > 1 {
    total[$2]++; if ($6) delay[$2]++ }
END {
  print "\"weekday\"", "\"percentage_delayed\"", "\"delayed\"", "\"total_flights\""
  for (day in total) { print day, delay[day] / total[day] * 100, delay[day], total[day]}
  }

입력하다:

3열과 4열은 공항 이름입니다.

"DAY_OF_MONTH","DAY_OF_WEEK","ORIGIN","DEST","DEP_TIME","DEP_DEL15","CANCELLED","DIVERTED","DISTANCE"
1,Tuesday,ORD,GRB,1003,0.00,0.00,0.00,322.248
1,Tuesday,TUL,ORD,1027,0.00,0.00,0.00,1083.42
1,Tuesday,EWR,TYS,1848,0.00,0.00,0.00,1168.61

산출:

"weekday", "percentage_delayed", "delayed", "total_flights"
Tuesday,10.7912,446,4133
Moday,10.2564,336,3276
Friday,26.6401,735,2759

주어진 매개변수의 출력만 표시하도록 코드에 매개변수를 추가하려면 어떻게 해야 합니까?

감사해요

답변1

$ awk -v origin='ORD' -v dest='GRB' '
  BEGIN { FS=OFS= "," }
  FNR > 1 && $3==origin && $4==dest { total[$2]++; if ($6) delay[$2]++ }
  END {
      print "weekday", "percentage_delayed", "delayed", "total_flights"
      for (day in total) 
          print day, delay[day] / total[day] * 100, delay[day]+0, total[day]
  }' infile

위와 는 awk 스크립트에 대한 인수로 정의 -v origin='ORD'되며 -v dest='GRB'필요에 따라 변경합니다.

관련 정보