ああ、else条件が機能しない場合

ああ、else条件が機能しない場合

次のコマンドを使用して追加できたすべての行に対して、csvファイルの3番目の列に値0.0を追加する必要があります。

awk -v FS=',' -v OFS=',' '{$2=$2",0.0"} 1' test.csv

ところで、行に3番目の列があることを確認すると、次のコマンドを使用して値を追加するだけでは機能しません。

awk -F, '{ if (length($2) != 0)  `awk -v FS=',' -v OFS=',' '{$2=$2",0.0"} 1'` ;}' test.csv

テスト.csv

2016-10-25 11:18:42.945 UTC,"dummy",546

2016-10-25 11:18:42.950 UTC

set misc_data = 'La Carmela de Boracay Resort Hotel|Twin 
Deluxe|Breakfast|AC|NA|Triple Sharing|-1_U_Miss_NINIA_HANNAH_FUGUIAO_-1_Non_false_#|'

1,2,5
3

出力:

2016-10-25 11:18:42.945 UTC,"dummy",0.0,546

1,2,0.0,5

ベストアンサー1

明示的にテストする必要はありませんif。ロジックをawkに統合できます。模様

awk -v FS=',' -v OFS=',' 'NF>1 && length($2) !=0 {$2=$2",0.0"; print}' test.csv
2016-10-25 11:18:42.945 UTC,"dummy",0.0,546
1,2,0.0,5

を使用する場合は、if構文はif (condition) {expression}次のとおりです。

awk -v FS=',' -v OFS=',' 'NF>1 {if (length($2) !=0) {$2=$2",0.0"; print}}' test.csv

おすすめ記事