计算有多少值大于特定数字,但该数字已经在不同文件的特定行中

计算有多少值大于特定数字,但该数字已经在不同文件的特定行中

我有两个文件

第一个文件(即 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

相关内容