как вычесть постоянную величину из файла данных?

Можно сделать это при помощи редактора vi только -

:%s/^/;/g
1
03.01.2014, 11:51
1 ответ

Это тривиально в awk:

$ awk '{if(NR>1){for(i=2;i<=NF;i++){$(i)=$(i)-10;}}print;}' data.txt 
Id  a   b   c   d   e
1 -9 -8 -7 -6 -5
2 -8 -7 -6 -5 -4
3 -7 -6 -5 -4 -3
4 -6 -5 -4 -3 -2
5 -5 -4 -3 -2 -1
6 -4 -3 -2 -1 0
7 -3 -2 -1 0 1
8 -2 -1 0 1 2
9 -1 0 1 2 3
10 0 1 2 3 4
11 1 2 3 4 5
12 2 3 4 5 6
13 3 4 5 6 7
14 4 5 6 7 8

Для сохранения выравнивания столбца Вы могли передать по каналу через column:

$ awk '{if(NR>1){for(i=2;i<=NF;i++){$(i)=$(i)-10;}}print;}' data.txt | 
     column -t
Id  a   b   c   d   e
1   -9  -8  -7  -6  -5
2   -8  -7  -6  -5  -4
3   -7  -6  -5  -4  -3
4   -6  -5  -4  -3  -2
5   -5  -4  -3  -2  -1
6   -4  -3  -2  -1  0
7   -3  -2  -1  0   1
8   -2  -1  0   1   2
9   -1  0   1   2   3
10  0   1   2   3   4
11  1   2   3   4   5
12  2   3   4   5   6
13  3   4   5   6   7
14  4   5   6   7   8
3
27.01.2020, 23:28
  • 1
    Как насчет столбца Id? Также это было бы более любезно с лучшим выровненным выводом! ;-) –  coffeMug 03.01.2014, 14:38
  • 2
    @coffeMug ах, положительная сторона, зафиксированная. –  terdon♦ 03.01.2014, 14:44
  • 3
    To - выравнивает вывод, канал в column -t –  glenn jackman 03.01.2014, 15:40

Теги

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