Linux 如何在行尾添加一部分行(对于文件中的每一行)
我将坐标存储在如下表格中:Linux 如何在行尾添加一部分行(对于文件中的每一行),linux,bash,awk,sed,grep,Linux,Bash,Awk,Sed,Grep,我将坐标存储在如下表格中: 140.7 44.9,140.7 44.7,141.0 44.7,141.1 44.8 ... 如何将第一个to values140.7 44.9(加上一个逗号)复制到行尾,使其成为闭合多边形 140.7 44.9,140.7 44.7,141.0 44.7,141.1 44.8, 140.7 44.9 这可以在一个命令中实现,还是必须将第一部分grep,然后将其附加到其他行?使用sed: s='140.7 44.9,140.7 44.7,141.0 44.7,1
140.7 44.9,140.7 44.7,141.0 44.7,141.1 44.8
...
如何将第一个to values140.7 44.9
(加上一个逗号)复制到行尾,使其成为闭合多边形
140.7 44.9,140.7 44.7,141.0 44.7,141.1 44.8, 140.7 44.9
这可以在一个命令中实现,还是必须将第一部分grep,然后将其附加到其他行?使用
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
s='140.744.9140.744.7141.044.7141.1 44.8'
sed-r的/([^,]+)(.*)/\0\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
s='140.744.9140.744.7141.044.7141.1 44.8'
sed-r的/([^,]+)(.*)/\0、\1/'这个awk单行程序怎么样:
awk -F, -v OFS="," '{print $0,$1}' file
如果您喜欢最后一个逗号后的白色空间,请改为OFS=“,”
。这个awk单行线怎么样:
awk -F, -v OFS="," '{print $0,$1}' file
如果你喜欢最后一个逗号后的whithspace,请改为OFS=“,”
。所以你们两个都很快,但你是第一个使用awk解决方案的人。@StefanB。对于awk来说,这是一项简单的工作。所以你们俩都很快,但你们是第一个使用awk解决方案的人。@StefanB。这对于awk来说是一项简单的工作。这看起来更简单sed-r的/([^,]+)(.*)/\0、\1/'
非常感谢,我编辑了我的sed命令。在这里,sed可以方便地在线编辑文件。这看起来更简单sed-r的/([^,]+)(.*)/\0、\1/'
非常感谢,我编辑了我的sed命令。sed在这里非常方便,可以在线编辑文件。