输入数据和打印的数学运算?

0 scripting bash text-processing

我正在尝试使用 bash 脚本按行和列打印数据,如下所示。

#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
    echo "$line"
done < "$1" 
{ 
   awk 'BEGIN { print "Points"}
      /Points/ { id = $1; }'
} 
Run Code Online (Sandbox Code Playgroud)

我的txt文件是这样的:

Team    Played  Wins    Tied
england     4       3       2
america     9       5       3
Run Code Online (Sandbox Code Playgroud)

终端上的输出应如下所示:

Team    Played  Wins    Tied  Points
england    4        3       2     16
america     9       5       3     26
Run Code Online (Sandbox Code Playgroud)

这是计算,一支球队赢了 1 场比赛,因此获得 4 分,而平局则获得 2 分。但我不知道如何进行数学运算,所以无法做到。

ste*_*ver 5

您根本不需要 shell 循环:

awk '{$(NF+1) = NR==1 ? "Points" : $3*4 + $4*2; print}' OFS='\t' input.txt
Team    Played  Wins    Tied    Points
A       2       1       1       6
B       2       0       1       2
Run Code Online (Sandbox Code Playgroud)