请参阅下面的数据示例。我希望将纬度和经度添加到以下行的末尾,直到到达下一个纬度和经度,然后执行相同的操作。这些纬度和经度值将在文件中发生变化。
当前数据
2010 02 15 19 29 2 0 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 29 2 1 1316.1 304 18.2 -9.5 -6.6
2010 02 15 19 29 2 2 1300.1 202 2.2 1.3 -1.2
2010 02 15 19 29 2 3 1284.1 188 5.2 1.4 -0.4
2010 02 15 19 49 2 0 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 49 2 1 1316.1 277 9.5 -8.7 -8.4
2010 02 15 19 49 2 2 1300.1 101 1.0 -1.4 -0.3
2010 02 15 19 49 2 3 1284.1 195 2.8 -2.0 0.9
2010 02 15 20 14 2 0 LATITUDE: 37.21 LONGITUDE: 90.27
2010 02 15 20 14 2 1 1316.6 285 7.0 -1.2 -6.7
2010 02 15 20 14 2 2 1300.6 46 2.8 2.1 -1.5
2010 02 15 20 14 2 3 1284.6 194 6.2 -1.8 -0.4
所需数据
2010 02 15 19 29 2 0 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 29 2 1 1316.1 304 18.2 -9.5 -6.6 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 29 2 2 1300.1 202 2.2 1.3 -1.2 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 29 2 3 1284.1 188 5.2 1.4 -0.4 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 49 2 0 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 49 2 1 1316.1 277 9.5 -8.7 -8.4 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 49 2 2 1300.1 101 1.0 -1.4 -0.3 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 49 2 3 1284.1 195 2.8 -2.0 0.9 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 20 14 2 0 LATITUDE: 37.21 LONGITUDE: 90.27
2010 02 15 20 14 2 1 1316.6 285 7.0 -1.2 -6.7 LATITUDE: 37.21 LONGITUDE: 90.27
2010 02 15 20 14 2 2 1300.6 46 2.8 2.1 -1.5 LATITUDE: 37.21 LONGITUDE: 90.27
2010 02 15 20 14 2 3 1284.6 194 6.2 -1.8 -0.4 LATITUDE: 37.21 LONGITUDE: 90.27
最佳答案
使用awk
:
awk '/LATITUDE/{v=""; for(i=8; i<=NF; i++)v=v" "$i; print; next} {print $0, v}' File
每当遇到模式LATITUDE
时,将行的一部分(从LATITUDE
到行尾)复制到变量v
。对于包含 LATITUDE
的行,按原样打印该行,对于其他行,打印该行,然后打印之前保存的变量 v
。
输出
AMD$ awk '/LATITUDE/{v=""; for(i=8; i<=NF; i++)v=v" "$i; print; next} {print $0, v}' File
2010 02 15 19 29 2 0 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 29 2 1 1316.1 304 18.2 -9.5 -6.6 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 29 2 2 1300.1 202 2.2 1.3 -1.2 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 29 2 3 1284.1 188 5.2 1.4 -0.4 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 49 2 0 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 49 2 1 1316.1 277 9.5 -8.7 -8.4 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 49 2 2 1300.1 101 1.0 -1.4 -0.3 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 19 49 2 3 1284.1 195 2.8 -2.0 0.9 LATITUDE: 37.19 LONGITUDE: 90.27
2010 02 15 20 14 2 0 LATITUDE: 37.21 LONGITUDE: 90.27
2010 02 15 20 14 2 1 1316.6 285 7.0 -1.2 -6.7 LATITUDE: 37.21 LONGITUDE: 90.27
2010 02 15 20 14 2 2 1300.6 46 2.8 2.1 -1.5 LATITUDE: 37.21 LONGITUDE: 90.27
2010 02 15 20 14 2 3 1284.6 194 6.2 -1.8 -0.4 LATITUDE: 37.21 LONGITUDE: 90.27
关于python - Linux中如何将一行数据复制到接下来N行的最后一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33777080/