繁体   English   中英

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 $4$5}')
    sed -i 's/$/,$ADD/' $file
done < $file

exit 0

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

这可能会做你想要的。

awk -F, '{print $0","$(NF-1)$NF}' file.txt

使用纯awk

awk -F, 'BEGIN { OFS="," } {print $0, $4$5 }'

这将产生所需的 output。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM