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

おすすめ記事