別のファイルの特定の行にすでに存在する特定の数値より大きい値の数を数えます

別のファイルの特定の行にすでに存在する特定の数値より大きい値の数を数えます

ファイルが2つあります

最初のファイル、つまりfile1には、次の値を持つ3行が含まれています。

   17.503766
   17.252752
   17.348948

2番目のファイル、つまりframe1には次の値が含まれています

  38.730
  17.270
  24.370
  45.180
  46.510

目標は、frame1 ファイルの値のうち、file1 の line1 に表示されている値より大きい値がいくつあるかをカウントすることです。

以下のようなものになりますが、これを基準として設定する方法がわかりません

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

か=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

関連情報