Добавление постоянных значений с помощью awk - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть требование добавить постоянное значение в 4-й столбец, если значение меньше 240000. Постоянное значение 010000. Я написал команду, но это не дает никакого вывода. Ниже приведен пример данных и сценария. Пожалуйста, помогите мне в этом. Спасибо заранее.

Команда:

awk  '{
  if($4 -lt 240000)
    $4= $4+010000;
 }' Test.txt

Пример данных:

1039,1018,20180915,000000,0,0,A
1039,1018,20180915,010000,0,0,A
1039,1018,20180915,020000,0,0,A
1039,1018,20180915,030000,0,0,A
1039,1018,20180915,240000,0,0,A
1039,1018,20180915,050000,0,0,A
1039,1018,20180915,060000,0,0,A
1039,1018,20180915,070000,1,0,A
1039,1018,20180915,080000,0,1,A
1039,1018,20180915,090000,2,0,A
1039,1018,20180915,241000,0,0,A
1039,1018,20180915,240500,0,0,A 

1 Ответ

0 голосов
/ 17 сентября 2018
$ awk  '
BEGIN { FS=OFS="," }                 # input and output field separators
{
    if($4<240000)                    # if comparison
        $4=sprintf("%06d",$4+10000)  # I assume 10000 not 010000, also zeropadded to 6 chars
        # $4+=10000                  # if zeropadding is not required
    print                            # output
 }' file

Выход:

1039,1018,20180915,010000,0,0,A
1039,1018,20180915,020000,0,0,A
1039,1018,20180915,030000,0,0,A
1039,1018,20180915,040000,0,0,A
1039,1018,20180915,240000,0,0,A
1039,1018,20180915,060000,0,0,A
1039,1018,20180915,070000,0,0,A
1039,1018,20180915,080000,1,0,A
1039,1018,20180915,090000,0,1,A
1039,1018,20180915,100000,2,0,A
1039,1018,20180915,241000,0,0,A
1039,1018,20180915,240500,0,0,A

$4+10000 не 010000, поскольку awk 'BEGIN{ print 010000+0}' выводит 4096, поскольку это восьмеричное представление этого значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...