Linux:逗号分隔的文本:阅读最后两个,添加它们,将它们放在每行的末尾

Linux: comma-delimited text: read last two, add them, place them at end of each line

我有一个如下所示的文件:

GOES-15,167,170,+,3
GOES-14,150,146,-,4
GOES-13,100,100,-,0
GOES-WEST,-160,-170,-,10

我想读取每行的最后两个元素(例如第一行的 +3)并添加它们并排在一起 (+3) 并用逗号分隔放在行尾,所以像这样:

GOES-15,167,170,+,3,+3

这是我正在尝试的:

#!/bin/bash

file=weather_sats.txt

while read line
do
    ADD=$(awk -F, '{print }')
    sed -i 's/$/,$ADD/' $file
done < $file

exit 0

这行不通,因为我在每行末尾都得到了“$ADD”。非常感谢任何帮助!

这可能会满足您的要求。

awk -F, '{print [=10=]","$(NF-1)$NF}' file.txt

使用纯awk:

awk -F, 'BEGIN { OFS="," } {print [=10=],  }'

产生所需的输出。