我正在尝试使用awk检查三列数据集的第二列,如果它不为零则替换它的值。我找到了这个正则表达式来查找非零数字,但我不知道如何结合gsub替换print内容并将其输出到新文件。我只想gsub在第二列上运行,而不是第一列或第三列。是否有一个简单awk的单线来做到这一点?还是我正在考虑做一些更复杂的事情?我什至尝试过做一个表达式来检查零,但我不确定如何在awk.
我半成功的命令是:
awk '$2 != 0 {print $1, 1, $3}' input > output
问题是如果第二列为零,它不会打印出该行。这是我认为gsubif/else 语句可以工作的地方,但我无法弄清楚awk语法。对此的任何指导将不胜感激。