Android는 더 이상 awk를 지원하지 않으며 교체해야 합니다. [닫기]

Android는 더 이상 awk를 지원하지 않으며 교체해야 합니다. [닫기]

awk를 사용하여 awkLog라는 파일의 일부 태그를 대체하여 더 읽기 쉽게 만드는 오래된 쉘 스크립트가 있습니다. 현재 명령은 다음과 같습니다.

awk log.txt -f awkLog > output.txt

의도는 스크립트가 CPU 사용량 등과 같은 데이터를 log.txt에 기록한 다음 데이터를 "파싱"하여 awkLog에 지정된 순서대로 output.txt에 쓰는 것입니다.

몇 가지 대안을 찾았지만 불행히도 쉘 스크립팅 경험이 없습니다. 제가 찾은 몇 가지 대안은 cut 명령을 사용하는 것이었습니다. 하지만 쉘 스크립트에서 이것을 달성하는 방법을 모르겠습니다.

awk로그 코드:

BEGIN { maxfree = 0
        minfree = 10000000000 } 
    { savailable += $1 
      sused += $2
      sfree += $3
      sshared += $4
      sbuff += $5
      if ( $3 > maxfree ) maxfree = $3
      if ( $3 < minfree ) minfree = $3 }
END { print "MEMORY"
      mavailable = savailable/NR
      print "(average) available   : ", mavailable
      print "average used : ", sused/NR
      print "average free   : ", sfree/NR
      print "average shared   : ", sshared/NR
      print "average buff : ", sbuff/NR
      print "free max       : ", maxfree
      print "free min       : ", minfree
      print "Minimum MEMORY usage : ", mavailable-maxfree, "K"
      print "Maximum MEMORY usage : ", mavailable-minfree, "K"
      print "Average MEMORY usage : ", mavailable-sfree/NR, "K" }

log.txt에서는 다음과 같습니다.

User 1%, System 3%, IOW 0%, IRQ 0%
User 6 + Nice 0 + Sys 14 + Idle 420 + IOW 0 + IRQ 0 + SIRQ 0 = 440

  PID PR CPU% S  #THR     VSS     RSS PCY UID      Name
10488  3   2% R     1   3704K   1248K  fg shell    top

답변1

귀하의 질문에서 내가 이해한 것은 파일의 문자열을 바꾸고 싶다는 것입니다. 그렇다면 sed이것이 더 나은 명령입니다.

sed -i 's/oldString/newString/g' log.txt

관련 정보