csvファイルがありますが、列番号だけを抽出したいと思います。7そして11。列7(その列に値がある)の値に応じて、OK
またはその横に列(マップ位置KO
と呼ばれる)を挿入したいと思います。value
OK -> 0
KO -> 1
また、最初に単純な文字列列を追加しました。
私の.awk
ファイルは次のとおりです。
BEGIN {FS=";";OFS=","}
{
value=0
if($7=="KO") {
value=1
}
print "Measure_QS",$7,value,$11
}
このファイルを使用してください。
gawk -f converter.awk Dataset.csv | head -n 10
次のコンテンツを提供してください。
Measure_QS,result,0,time_stamp
Measure_QS,OK,0,2020-01-17 11:53:33.000
Measure_QS,OK,0,2020-01-17 11:53:22.000
Measure_QS,OK,0,2020-01-17 11:51:42.000
Measure_QS,OK,0,2020-01-17 11:51:30.000
Measure_QS,OK,0,2020-01-17 11:51:06.000
Measure_QS,OK,0,2020-01-17 11:50:53.000
Measure_QS,OK,0,2020-01-17 11:50:41.000
Measure_QS,OK,0,2020-01-17 11:50:29.000
Measure_QS,OK,0,2020-01-17 11:50:17.000
タイトルはMeasure_QS,result,0,time_stamp
次のとおりです。Measure_QS,result,value,time_stamp
私はどこで間違っていますか?
答え1
NR
変数を使用してこの問題を解決できました。gawk
BEGIN {FS=";";OFS=",";print "measurement","result","value","time_stamp"}
{
value=0
if(NR!=1) {
if($7=="KO") {
value=1
}
print "Measure_QS",$7,value,$11
}
}
これはうまくいきます
gawk -f converter.awk Dataset.csv | head -n 10
measurement,result,value,time_stamp
Measure_QS,OK,0,2020-01-17 11:53:33.000
Measure_QS,OK,0,2020-01-17 11:53:22.000
Measure_QS,OK,0,2020-01-17 11:51:42.000
Measure_QS,OK,0,2020-01-17 11:51:30.000
Measure_QS,OK,0,2020-01-17 11:51:06.000
Measure_QS,OK,0,2020-01-17 11:50:53.000
Measure_QS,OK,0,2020-01-17 11:50:41.000
Measure_QS,OK,0,2020-01-17 11:50:29.000
Measure_QS,OK,0,2020-01-17 11:50:17.000