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