我有这个
-77.199997 23.6343749630 39.9989584580
-80.000000 23.6364583430 39.9989584580
-81.599998 23.6385417220 39.9989584580
我想对列重新排序,以便读取第 2 列、第 3 列、第 1 列(纬度、经度、海拔)
我以前曾多次使用过 awk,但由于某种原因,在对列重新排序时,结果是这样的,带有额外的空格
32.1614584410 43.3385414490
-2019.400024
32.1635418210 43.3385414490
-2016.800049
32.1656252000 43.3385414490
-2018.500000
我还有更多,但有人可以告诉我为什么这样做还是我错过了一些东西
awk -F" " '{print " "$2" "$3" "$1" "}' infile.xyz > outfile.xyz
awk '{print $2 $3 $1}' infile.xyz > outfile.xyz
awk -F" " '{print ""$2" "$3" "$1""}' infile.xyz > outfile.xyz
答案1
我必须在所有 infiles 上运行 dos2unix,之后一切正常。
答案2
首先,确保您正在使用空间并不是选项卡在输入文件中。
然后,尝试用逗号分隔变量,如下所示:
awk '{print $2,$3,$1}' infile.xyz > output.xyz
如果将变量并排放置(如 in )$2 $3 $1
,awk
则会将它们连接起来。
另外,您可能想尝试该printf
功能,因为它提供了更好的格式化功能。