我已经将坐标存储在这样的表中:
140.7 44.9,140.7 44.7,141.0 44.7,141.1 44.8
...
如何将第一个到值140.7 44.9
(加上一个逗号)复制到行的末尾,使其成为一个闭合多边形?
140.7 44.9,140.7 44.7,141.0 44.7,141.1 44.8, 140.7 44.9
这可以在一个命令中实现吗?还是我必须grep第一部分,然后将其附加到其他行?
这个awk一行:怎么样
awk -F, -v OFS="," '{print $0,$1}' file
如果你喜欢最后一个逗号后面的空白,请改为OFS=", "
。
使用sed
:
s='140.7 44.9,140.7 44.7,141.0 44.7,141.1 44.8'
sed -r 's/([^,]+)(.*)/ ,1/' <<< "$s"
140.7 44.9,140.7 44.7,141.0 44.7,141.1 44.8, 140.7 44.9
使用awk:
awk -F, -v OFS=', ' '{print $0, $1}' <<< "$s"
140.7 44.9,140.7 44.7,141.0 44.7,141.1 44.8, 140.7 44.9