我有这样一个输入文件:
3 1 10 1 6
9 4 2 4 1
9 2 2 2 1
2 4 2 2 2
9 4 9 2 9 1 2 需要遵循的条件:
输出应该如下所示:
3 1 11 1 10 1 6
9 4 11 4 2 4 1
9 2 11 2 2 2 1
2 4 2 5 2 2 2
9 4 9 2 9 1 2 提前感谢!
发布于 2020-03-31 06:36:17
awk '{if((NF==5) && ($2 == $4)){$7=$5;$5=$3;$6=$4;$3=11;$4=$2;print $0}else if ((NF==5) && ($1 == $3)){$7=$5;$5=$3;$6=$4;$4=5;$3=$1;print }else{print $0}}' filename输出
3 1 11 1 10 1 6
9 4 11 4 2 4 1
9 2 11 2 2 2 1
2 4 2 5 2 2 2
9 4 9 2 9 1 2 发布于 2020-03-26 03:09:52
$ awk 'NF==5{ if ($2==$4) $2 = $2 OFS 11 OFS $4; else if ($1==$3) $2 = $2 OFS $1 OFS 5 } 1' file
3 1 11 1 10 1 6
9 4 11 4 2 4 1
9 2 11 2 2 2 1
2 4 2 5 2 2 2
9 4 9 2 9 1 2发布于 2020-03-26 00:50:10
下面是一行awk命令,它提供了所需的输出:
{ if(NF == 5& $2 == $4) {a=11;b=$2;打印$1“$2”a“b "$3”$4“$5;} if(NF == 5& $1 == $3) {c=$1;d=5;打印$1”$2 "c "d“d”$3“$4”$5;}打印$0}‘sample_simple.txt’
https://unix.stackexchange.com/questions/574991
复制相似问题