파일의 음수 값을 0으로 바꾸기

파일의 음수 값을 0으로 바꾸기

파일의 모든 음수 값을 0으로 바꾸고 싶습니다. 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

관련 정보