文字格式差异

时间:2013-06-26 18:53:29

标签: windows-7 awk windows-xp cygwin

我在Cygwin中得到2个不同的结果。在XP中,列(正确的输出)和Win7都在一条长行上

awk '{$0=sprintf("%.1f%.1f%4s", $1,$2,$3);gsub(/ /,"0");gsub(/\./,"")}1' /cygdrive/e/$1.txt > /cygdrive/e/$1.bod

由于

输入:(35030035.txt)

  4.65   2.38   15
  4.71   3.36  775
  3.52   3.03   53
  4.05   3.33   71
  3.22   2.99  346

XP输出:(35030035.bod) 这是正确的输出

47240015
47340775
35300053
40330071
32300346

Win7输出:(35030035.bod)

4724001547340775353000534033007132300346

1 个答案:

答案 0 :(得分:1)

看起来线路终结器搞砸了。在\n函数中尝试明确sprintf

<强> sprintf("%.1f%.1f%4s\n", $1,$2,$3)

或代替1执行print $0

awk {$0=sprintf("%.1f%.1f%4s", $1,$2,$3);gsub(/ /,"0");gsub(/\./,"");print $0}'

替代使用RS awk变量来设置新行。