列 1 が列 3 と等しい場合は列 4 の値を X に置き換え、それ以外の場合は awk を使用して列 4 のすべての項目を列 2 に置き換えるにはどうすればよいですか?

列 1 が列 3 と等しい場合は列 4 の値を X に置き換え、それ以外の場合は 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。中かっこの前に条件を入力します。

おすすめ記事