私の入力ファイルは次のとおりです。
x;y;z
1;1,2;1
0;0,5;1
0;0,75;2
4;1,5;2
2;3,55;1
私awk
のもの:'{if($1>0){print $1";"$2-$3";"}'
私の予想結果:
1;0,2;
4;-0,5;
2;2,55;
しかし、私の出力ファイルにはカンマを含む数字は表示されません。
ベストアンサー1
あなたの地域が邪魔になっています。バラよりhttps://www.gnu.org/software/gawk/manual/html_node/Locale-influences-conversions.html
POSIXLY_CORRECT
GNU awkの場合は、環境変数とLS_NUMERIC環境変数をコンマを小数点区切り文字として使用するロケールに設定する必要があります。
POSIXLY_CORRECT=1 LC_ALL=en_DK.utf-8 gawk -F';' '$1+0 > 0 {print $1 FS $2-$3 FS}' file
1;0,2;
4;-0,5;
2;2,55;
$1+0 > 0
また、ヘッダーの印刷を避けるために使用します。また、使用することができますNR > 1 && $1 > 0
POSIXLY_CORRECT環境変数を使用gawk --posix
または置き換えることもできます。gawk --use-lc-numeric