特定の数値よりも大きい値が数個あるかを計算しますが、その数値はすでに別のファイルの特定の行にあります。

特定の数値よりも大きい値が数個あるかを計算しますが、その数値はすでに別のファイルの特定の行にあります。

ファイルが2つあります。

最初のファイル(例:file1)には、次の値を含む3行が含まれています。

   17.503766
   17.252752
   17.348948

2番目のファイル、つまり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

関連情報