![如果第 1 列与第 3 列相同,如何用 X 替换第 4 列中的值,否则使用 awk 将第 4 列中的每个条目替换为第 2 列](https://linux22.com/image/10347/%E5%A6%82%E6%9E%9C%E7%AC%AC%201%20%E5%88%97%E4%B8%8E%E7%AC%AC%203%20%E5%88%97%E7%9B%B8%E5%90%8C%EF%BC%8C%E5%A6%82%E4%BD%95%E7%94%A8%20X%20%E6%9B%BF%E6%8D%A2%E7%AC%AC%204%20%E5%88%97%E4%B8%AD%E7%9A%84%E5%80%BC%EF%BC%8C%E5%90%A6%E5%88%99%E4%BD%BF%E7%94%A8%20awk%20%E5%B0%86%E7%AC%AC%204%20%E5%88%97%E4%B8%AD%E7%9A%84%E6%AF%8F%E4%B8%AA%E6%9D%A1%E7%9B%AE%E6%9B%BF%E6%8D%A2%E4%B8%BA%E7%AC%AC%202%20%E5%88%97.png)
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
公式,只需要把条件放在大括号前面即可。