여러 숫자 값 열로 구성된 CSV 파일이 있습니다. 세 번째 열을 abs($3-1)
세 번째 열에 있는 숫자의 절대값에서 1을 뺀 값인 으로 바꾸고 싶습니다 .
다음 명령을 사용해 보았습니다.
awk '{d=($3>1)?($3-1):(-$3+1); print $1 " " $2 " " $d}' file.csv
변수가 d
올바른 값을 저장하기를 바랍니다. 그러나 내가 얻은 결과는 완전히 잘못되었습니다. 내가 여기서 뭘 잘못하고 있는 걸까? 죄송합니다. 이제 막 시작했습니다 awk
.
답변1
코드에서는 $d
:th 필드의 값입니다. d
변수의 값이 d
기록됩니다 d
.
추가 변수를 사용하지 않고 코드를 단순화할 수 있습니다.
$3 = $3 > 1 ? $3 - 1 : 1 - $3
print
또는,
$3 -= 1; if ($3 < 0) $3 = -$3
print
... OFS
올바른 구분 기호 값을 가정합니다. print
인수 없이 사용하면 현재 레코드가 출력됩니다.