awkはNULL値を持つ新しい列を比較して追加します。

awkはNULL値を持つ新しい列を比較して追加します。

タブ区切りのcsvファイルにnull値を入力しました。たとえば、値が> = 800であることを確認し、結果を新しい列に追加したいとします。

入力する

a
623

616
803

出力

a     b
623   no
      no
616   no
803   yes

ベストアンサー1

awk -v minval=800 'BEGIN{ FS=OFS="\t" }
  FNR==1{ print $0, "b"; next } # print header
  { print $0, ($1 >= minval ? "yes" : "no") }
' file

出力:

a       b
623     no
        no
616     no
803     yes

最初の列が空であることを明示的に確認する必要はありません。文字列を数値と比較すると、数値は文字列に変換されます。アルファベット順に比較すると、空の文字列は常に空でない文字列の前にあるため、空でない文字列以上であることはできません。

おすすめ記事