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 分。但我不知道如何进行数学运算,所以无法做到。
您根本不需要 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)