열 값을 양수에서 음수로 변환

열 값을 양수에서 음수로 변환

XYZ 파일이 있는데 대부분의 Z 값은 양수이지만 실제로는 음수여야 합니다. 세 번째 열의 모든 양수 값을 음수 값으로 변환하고 싶습니다(이미 음수 값은 동일하게 유지).

저는 코딩을 처음 접했고 다음과 같은 몇 가지를 시도했습니다.

 awk $3 > 0 ? -1 * $3 : $3 InputFileName.txt > OutputFileName.txt

어떤 도움이라도 대단히 감사하겠습니다! 감사해요!

답변1

awk '$3>0{$3 *= -1} 1' file

답변2

다음 명령을 사용하여 해결할 수 있습니다.

awk '{ if($3>0){ printf "%8s%8s",$1,$2 ; printf "%8s\n",$3*-1 } else printf "%8s%8s%8s\n",$1,$2,$3 }' InputFileName.txt > OutputFileName.txt

through 를 사용하면 지정된 필드 너비(이 경우 8)의 형식으로 printf출력이 생성됩니다 . 따라서 다음과 같은 출력을 얻지 마십시오.awk%8s

10 20 -40
34 -4 -4
1 1 -2

당신은 얻을 것이다:

      10      20     -40
      34      -4      -4
       1       1      -2

형식을 제공하는 데 관심이 없으면 %8s다음으로 변경할 수 있습니다.%s

관련 정보