如何在一行的末尾添加一部分(针对文件中的每一行)



我已经将坐标存储在这样的表中:

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

最新更新