我想用零替换文件中的所有负值。如何在 awk 中执行此操作?
我尝试过gsub
,但gsub(-*, 0)
没有用...有什么想法吗?
我的“代码”是
awk '{gsub($(!/-/),"0",$2); print $1 "\t" $2} file.dat >file.dat
答案1
看起来您正尝试仅更新第二列。如果是这样,则应该执行以下操作:
awk '$2<0 {$2=0} 1' file > tmp_file && mv tmp_file file
测试
$ cat a
hello 2
hello 3
hello -1
hello -4
hello 0
$ awk '$2<0 {$2=0} 1' a
hello 2
hello 3
hello 0
hello 0
hello 0