Заменить отрицательные значения в файле нулями

Заменить отрицательные значения в файле нулями

Я хочу заменить все отрицательные значения в файле нулями. Как это сделать в awk?

Я пробовал, gsubно gsub(-*, 0)не работает... Есть идеи?

Мой «код»:

awk '{gsub($(!/-/),"0",$2); print $1 "\t" $2} file.dat >file.dat

решение1

Похоже, вы пытаетесь обновить только 2-й столбец. Если это так, то это должно сделать:

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

Связанный контент