{ # read each line from input file, NR is internal variable `Number of Row`
arr1[NR] = $1; # read column #1 into arr1
arr2[NR] = $2; # read column #2 into arr2
arr3[NR] = $3; # read column #3 into arr3
}
END { # post processing after reading input file.
for (i = NR; i > 0; i--){ # reverse read the arrays from top to bottom
print arr1[i], arr2[NR + 1 - i], arr3[i]; # orderly output arr1, arr3, but reverse order arr2
}
}
2条答案
按热度按时间mdfafbf11#
建议使用此简化的
awk
脚本:script.awk
running:
axzmvihb2#
这可能对你有用(GNU sort,sed和cat):
按升序对文件的第2列进行排序。
提取列2并将这些值转换为sed替换脚本。
将行号应用于上述脚本。
将脚本应用于按列2降序排序的同一文件。
使用粘贴效果相同: