Zählen Sie, wie viele Werte größer als eine bestimmte Zahl sind, die sich jedoch bereits in einer bestimmten Zeile einer anderen Datei befindet.

Zählen Sie, wie viele Werte größer als eine bestimmte Zahl sind, die sich jedoch bereits in einer bestimmten Zeile einer anderen Datei befindet.

Ich habe zwei Dateien

Die erste Datei, nämlich file1, enthält drei Zeilen mit den folgenden Werten

   17.503766
   17.252752
   17.348948

Die zweite Datei, nämlich frame1, enthält folgende Werte

  38.730
  17.270
  24.370
  45.180
  46.510

Ziel ist es, zu zählen, wie viele dieser Werte aus der Datei Frame1 größer sind als der in Zeile 1 von Datei1 dargestellte Wert.

Es wird also etwas Ähnliches wie unten sein, aber ich weiß nicht, wie ich das als Kriterium festlegen soll

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

Antwort1

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

Mit GNU awk können Sie Folgendes ersetzen:

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

mit folgendem für die Effizienz:

tgt=$1; nextfile

Antwort2

Mit folgendem Befehl versucht

#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

verwandte Informationen