我在这样的表中存储了坐标:
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第一部分然后将其附加到其他行?
答案 0 :(得分:3)
这个awk单行怎么样:
awk -F, -v OFS="," '{print $0,$1}' file
如果您喜欢最后一个逗号后面的whithspace,请更改为OFS=", "
。
答案 1 :(得分:1)
使用sed
:
s='140.7 44.9,140.7 44.7,141.0 44.7,141.1 44.8'
sed -r 's/([^,]+)(.*)/\0,\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