Преобразование определенного числа в файл в awk

Si leí su pregunta correctamente, está buscando imprimir los campos 6, 12 y 13 si y solo si los campos 12 y 13 no son (100, 137 )o (0, 0 ). entonces:

awk -F: '! ( ( $12 == 0 && $13 == 0 ) || ( $12 == 100 && $13 == 137 ) ) { print $6, $12, $13 }' inputfile
0
18.06.2019, 18:46
1 ответ

Я предлагаю создать файл, например. replace.txtкоторый содержит замены, старое значение в столбце 1, новое значение в столбце 2, например

1 9
2 8
3 6
4 7
5 4
6 10
7 5
82 92
83 91
84 94
85 93
86 97
87 95
88 96

Предполагая, что ваш файл данных data.txt, вы можете использовать этот скрипт AWK:

awk 'NR==FNR { t[$1]=$2; next;} # fill translation table from first file
{ for(i=1;i<5;i++) { # process columns 1..4
        if ($i in t) { # replacement available
                $i=t[$i]; # replace field only once
        }
  }
  print $1, $2, $3, $4;
  # or if you want all columns:
  # $1=$1 # this makes sure unmodified lines get the new format
  # print # print all fields after modification
}' replace.txt data.txt

С учетом вашего ввода генерируется

18 13 8 4
38 34 29 24
12 14 9 4
34 29 24 30
14 9 4 6
13 8 4 6
34 29 24 28
13 8 4 5
14 9 4 5
5 4 6 10
5 4 6 7
5 4 6 8
14 9 4 8
13 8 4 9
34 29 24 22

или с альтернативным выходом

18 13 8 4 3 1.715 2.845 1.046 -5.607 -0.000 0.000
38 34 29 24 3 1.715 2.845 1.046 -5.607 -0.000 0.000
12 14 9 4 3 1.715 2.845 1.046 -5.607 -0.000 0.000
34 29 24 30 3 1.715 2.845 1.046 -5.607 -0.000 0.000
14 9 4 6 3 1.715 2.845 1.046 -5.607 -0.000 0.000
13 8 4 6 3 1.715 2.845 1.046 -5.607 -0.000 0.000
34 29 24 28 3 1.590 4.770 0.000 -6.360 -0.000 0.000
13 8 4 5 3 1.590 4.770 0.000 -6.360 -0.000 0.000
14 9 4 5 3 1.590 4.770 0.000 -6.360 -0.000
5 4 6 10 3 0.628 1.883 0.000 -2.510 -0.000 0.000
5 4 6 7 3 0.628 1.883 0.000 -2.510 -0.000 0.000
5 4 6 8 3 0.979 2.937 0.000 -3.916 -0.000 0.0000.000
14 9 4 8 3 -6.458 0.810 5.682 -0.033 -0.000 0.000
13 8 4 9 3 -6.458 0.810 5.682 -0.033 -0.000 0.000
34 29 24 22 3 -6.458 0.810 5.682 -0.033 -0.000 0.000
2
28.01.2020, 02:30

Теги

Похожие вопросы