我目前正在尝试使用 awk 重新排列类似于以下内容的 .csv 文件:
stack,over,flow,dot,com
输出将是:
over,com,stack,flow,dot
(或任何其他顺序,仅以此为例)
当需要重新排列 csv 文件时,我一直在尝试使用以下内容:
first='$2'
second='$5'
third='$1'
fourth='$3'
fifth='$4'
awk -v a=$first -v b=$second -v c=$third -v d=$fourth -v e=$fifth -F '^|,|$' '{print $a,$b,$c,$d,$e}' somefile.csv
出于 awk/print 的目的,将 $a、$b、$c 等解释为字段编号,因此结果如下:
{print $2,$5,$1,$3,$4}
并按该顺序打印出 csv 文件的字段,但不幸的是我还不能让它正常工作。我已经尝试了几种不同的方法,这似乎是最有希望的,但不幸的是还没有能够让任何解决方案正常工作。话虽如此,我想知道是否有人可以提出任何建议或指出我的缺陷,因为我此时被难住了,任何帮助将不胜感激,谢谢!