我有一个文件,有3列像这样
Col1 Col2 Col3
A B <-
C D ->
E F ->我想在任何时候交换Col1和Col2的条目
<-在第三栏。我希望输出文件类似于
Col1 Col2 Col3
B A ->
C D ->
E F ->发布于 2017-11-22 13:04:19
awk '($3=="<-"){$3=$2;$2=$1;$1=$3;$3="->"}1' <file>本质上,如果是$3=="<-",那么交换列并重新定义$3。那就印出来。
发布于 2017-11-22 12:57:15
一个简短的awk示例是
cat foooo | awk '{if (match($3,"<-")){print $2,$1,$3}else{print $1,$2,$3}}' 其中foooo是文件名。
如果您还想更改"<-“,则代码将是
cat foooo | awk '{if (match($3,"<-")){print $2,$1,"->"}else{print $1,$2,$3}}' https://stackoverflow.com/questions/47434888
复制相似问题