シェルスクリプト - 値が以下より小さい場合は、複数行を確認してください。

シェルスクリプト - 値が以下より小さい場合は、複数行を確認してください。

入力ファイル(.txtまたは.csv)があり、このファイルには異なる値があります(時々値はありません -> "")。これらの値のいずれかが0.001より小さい場合(または空 -> "")、出力は "UNCONFIRMED"でなければなりません。入力ファイルの各行に0.001より大きい(または等しいかどうかは重要ではありません)値が含まれている場合、出力は「確認済み」でなければなりません。

1.csvと入力してください。

"1.23"
"0.01"

2.csvと入力してください。

"1.23"
"0.01"
"0.00001"
""
""
"0.75"

出力-1.csv

"CONFIRMED"

出力2.csv

"UNCONFIRMED"

ベストアンサー1

GNUの使用awk:

gawk -F '"' '
  BEGINFILE {found = 0}
  $2 < 0.001 {found = 1; nextfile}
  ENDFILE {
    output_file = FILENAME
    sub("input", "output", output_file)
    print FS (found ? "UN" : "") "CONFIRMED" FS > output_file
  }' ./input*.csv

おすすめ記事