將文件中的負值替換為零

將文件中的負值替換為零

我想用零替換文件中的所有負值。我怎麼能在 awk 中做到這一點?

我嘗試過gsubgsub(-*, 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

相關內容