何百もの列を含むCSVファイルがあります。静的数字から特定の列の値を引いた後、行全体を印刷したいと思います。この列の値は長い浮動小数点数です。減算を実行すると、awkは自動的に結果を科学的な形式に変換します。 printfを使用して標準表現を取得できますが、行全体を取得する必要があり、1行あたりのフィールドが多すぎます。
この自動変換を回避したり、少なくともバイパスする方法はありますか?
答え1
からman awk
:
置換で数値式を文字列に変換表現そしてsprintf(CONVFMT、式)、しない限り表現ホストで正確な整数で表され、次に変換できます。sprintf("%d", 式)。破片() の機能を複製するAWK組み込み関数です。スプリント(3)と畳み込みFMT 数値を文字列に内部変換するために使用される組み込み変数で、%.6g明示的な型変換を強制できますexpr ""
。ひもそしてexpr+0
数字。
だからあなたは整理することができます畳み込みFMT開始フィールドまたは書式フィールドの変数です。