0

単純な 2 列の CSV データで最初のローカル最小データ ポイントの x、y 座標を返す Bash シェル スクリプト関数を作成したいと考えています。

この関数は、次のようなデータを格納する Bash 変数 ("${myData}" など) を入力として受け取ります。

10, 0.14665
20, 0.144971
30, 0.14262
40, 0.142424
50, 0.142370
60, 0.142375
70, 0.142375
80, 0.142375
90, 0.142375
100, 0.142375
110, 0.142306
120, 0.142017
130, 0.141054
140, 0.140148
150, 0.139993
160, 0.139972
170, 0.139958
180, 0.139932
190, 0.139886
200, 0.139876
210, 0.13987
220, 0.139865
230, 0.139861
240, 0.13986
250, 0.139857
260, 0.139855
270, 0.139853
280, 0.139852
290, 0.139847
300, 0.139847

関数で最初の極小点 (この場合、これは座標 50、0.142370 に対応します) を見つけて、この点の座標を返すようにします。これを行う簡単な方法を提案できますか?

4

1 に答える 1

1

awk は、1 行で使用することも、次のようにきれいにインデントして使用することもできます。

awk '
  NR > 1 { 
    if ($2 > n) { 
      print line; 
      exit(0); 
    } 
  }  
  { 
    line=$0; 
    n=$2 
  }
' <<< "${myData}"

を取り出して、exit(0);すべての極小値を表示することもできます。

于 2013-02-14T22:55:37.420 に答える