如果第 1 列与第 3 列相同,如何用 X 替换第 4 列中的值,否则使用 awk 将第 4 列中的每个条目替换为第 2 列

如果第 1 列与第 3 列相同,如何用 X 替换第 4 列中的值,否则使用 awk 将第 4 列中的每个条目替换为第 2 列
A01 106403746   A01 0
A01 106720129   A01 690201.72
A01 106420797   A01 1345008.48
A01 106021633   A01 1345008.48
A01 106021630   A01 1345008.48
A01 106369397   A01 1345008.48
A01 77894226    A01 3291731.28
A01 106625479   A01 3291731.28
B01 112178282   A01 3291731.28
A01 77599901    A01 3291731.28
A01 106805991   A01 3291731.28
A01 106885583   A01 3291731.28
A01 106642966   A01 3291731.28
A01 106545175   A01 3291731.28
A05 44887670    A01 3291731.28

尝试过:

awk '{if ($1 == $3) print $1"\t"$2"\t"$3"\t"$4==x}' input_file|less -S

答案1

这是非常基本的:

awk '$1==$3{$4="X";print;next}{$4=$2}1' file

不需要if公式,只需要把条件放在大括号前面即可。

相关内容