[英]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.