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=], }'
产生所需的输出。
我有一个如下所示的文件:
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=], }'
产生所需的输出。