Реформирование файлов для загрузки в базу данных. Подробная информация о файлах приведена ниже кода.awk для значения инкремента цикла
Что я до сих пор. Все работает, за исключением вычисления часа.
awk 'BEGIN{ FS="|" ; OFS="\t" };
{ for (i = 4; i < NF; i=i+2) {
# +2 Because need to walk row in pairs of QC/Value(s)
if (NF == 52) {
hour = (i - 2)/2
# Need the value of i, not what is stored in position i.
qualitycode = i
value = i + 1
print ($1,$2,$3,$hour,$qualitycode,$value)
} else {
print ("ERROR",$NR,$0)
}
}
}' $origfile > $tempfile
cat $tempfile | grep ERROR > $errfile
cat $tempfile | grep -v ERROR > $newfile
Как я могу получить значение из я вместо того, что хранится «в» положении I?
В случае, если вас это интересует.
Оригинальные файлы данных в этом формате:
Module|Sensor|Date|QC1|Value1|QC2|Value2|QC3|Value3|......|QC23|Value23|QC24|Value24|
90123|PQRST|20161015|4|12.45|4|11.23|4|10.40|4|9.89|......|4|21.36|4|20.55|
65432|BCDEF|20161015|4|6.45|4|7.51|2|9.01|4|11.74|.....|4|18.92|4|16.4|
.....many more rows
Существует более чем один модуль, и каждый модуль имеет более чем один датчик.
Хотела переформатировать для загрузки в базу данных:
Module\tSensor\tDate\tHour\tQC1\tValue1
Module\tSensor\tDate\tHour\tQC2\tValue2
Module\tSensor\tDate\tHour\tQC24\tValue24
час, конечно, нужно увеличивать от 1 до 24 для каждого модуля/датчика/день?
Вы пытались использовать 'value' и' i' вместо '$ value' и' $ i'? –