【问题标题】:Text formatting difference文本格式差异
【发布时间】:2013-06-26 18:53:29
【问题描述】:

我在 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

【问题讨论】:

    标签: windows-7 awk windows-xp cygwin


    【解决方案1】:

    看起来行终止符搞砸了。在 sprintf 函数中尝试显式的 \n

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

    或者用print $0代替1

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

    另外使用awkRS 变量来设置新行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-30
      • 2022-12-07
      • 2023-03-27
      • 1970-01-01
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多