複数のifと交換してawk

複数のifと交換してawk

私はawkでこれと同等のことをしたいと思います(コマンドラインの各行について)。

items = split(',')
if items[2] >= 10:
  return items[0], items[1], 7
if 4 < items[2] < 10:
  return items[0], items[1], 2
return  items[0], items[1], 1

ファイルはcsv形式で、3つのフィールドがあります。

ベストアンサー1

次のテキストをxxx.awkのように保存します。

#!/usr/bin/awk -f
BEGIN {
   FS="," ; 
}{
   if ( $3 >= 10 ) {
      print $1" "$2" "7 ; 
   } else if ( 4 < $3 && $3 < 10 ) {
      print $1" "$2" "2 ;
   } else {
       print $1" "$2" "1 ;
   }
}

次に実行します。

./xxx.awk  yourCSVfile

実行する前に、「chmod +x xxx.awk」コマンドラインを実行する必要があります。

おすすめ記事