簡體   English   中英

Awk - 使用包含多個文件的數組

[英]Awk - using an array with multiple files

我是 shell 腳本的新手,我需要計算平均 file1,然后計算結果的平均值和 file2 中的數字,到目前為止我想出了這個,但它沒有打印任何東西。

awk '{if ($FILENAME == "spring") array[$1]=($2+$3+$4+$5+$6+$7+$8)/7; if($FILENAME == "fall") array[$1]=(array[$1]+$2)/2 }  END { for (var in array) print var,array[var]}' ./spring ./fall

有什么辦法可以解決這個問題?

awk 中沒有符號。 嘗試刪除$

awk 'FILENAME ~ /spring/ { array[$1]=($2+$3+$4+$5+$6+$7+$8)/7 }
   FILENAME ~ /fall/ { array[$1]=(array[$1]+$2)/2 }  
   END { for (var in array) print var,array[var]}' ./spring ./fall

簡而言之, FILENAME是當前正在處理的文件的名稱,但是當 FILENAME 以字母開頭時, $FILENAME相當於$0

awk '{s+=$1}ENDFILE{print FILENAME,s/FNR;s=0}' RS=" " file1 file2怎么樣:

$ cat file1
1 2 3 4 5 6 7 8

$ cat file2
1 2

$ awk '{s+=$1}ENDFILE{print FILENAME,s/FNR;s=0}' RS=" " file1 file2
file1 4.5
file2 1.5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM