複数の数値列で構成されるCSVファイルがあります。 3番目の列をabs($3-1)
3番目の列の数値の絶対値から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
引数なしで使用すると、現在のレコードが出力されます。