在awk中转置两个字段

在awk中转置两个字段,awk,Awk,假设文件如下所示: a|b|c|d a|b|c|d ... a|b|c|d 如何转换两个字段,例如: c|b|a|d c|b|a|d ... c|b|a|d 提前谢谢 至少在内存可用的情况下,这种一般顺序的东西应该可以工作: BEGIN { FS="|"; } { printf("%s|%s|%s|%s\n", $3, $2, $1, $4); } 杰瑞是“对的”,但有一个更简洁的方法来实现这一点 awk-F\|“{print$3FS$2FS$1FS$4}”input.csv F

假设文件如下所示:

a|b|c|d
a|b|c|d
...
a|b|c|d
如何转换两个字段,例如:

c|b|a|d
c|b|a|d
...
c|b|a|d

提前谢谢

至少在内存可用的情况下,这种一般顺序的东西应该可以工作:

BEGIN { FS="|"; }

    { printf("%s|%s|%s|%s\n", $3, $2, $1, $4); }

杰瑞是“对的”,但有一个更简洁的方法来实现这一点

awk-F\|“{print$3FS$2FS$1FS$4}”input.csv


FS代表字段分隔符,您可以将其更改为$3“$2”等。。如果更容易,这里有另一个解决方案:交换第一个和第三个字段,然后打印:

awk -F '|' '{ temp=$1; $1=$3; $3=temp; print }' data.txt