計算有多少值大於特定數字,但該數字已經在不同文件的特定行中

計算有多少值大於特定數字,但該數字已經在不同文件的特定行中

我有兩個文件

第一個檔案(即 file1)包含三行,其值如下

   17.503766
   17.252752
   17.348948

第二個文件,即frame1包含以下值

  38.730
  17.270
  24.370
  45.180
  46.510

目標是計算第 1 幀檔案中的值中有多少大於第 1 行檔案中顯示的值。

所以會類似於下面的內容,但我不知道如何將其設定為標準

awk '($1>??){ ++count } END{ print count }' 'frame1' > 'file-new'

答案1

$ awk 'NR==FNR{ if (FNR==1) tgt=$1; next } $1 > tgt{ ++count } END{ print count+0 }' file1 frame1
4

使用 GNU awk 您可以替換:

if (FNR==1) tgt=$1; next

為了提高效率,採用以下方法:

tgt=$1; nextfile

答案2

嘗試使用以下命令

#Below Command fetches highest value from file1

k=awk 'BEGIN{sum=0}($1 > sum){sum=$1}END{print sum}' file1

#Below command will display value from file2 which is greater  when compared with file1


awk -v k="$k" '$1 > k {print $1}' file2

相關內容