代码之家  ›  专栏  ›  技术社区  ›  Abhishek N

无法在ruby on rails中使用backticks来使用tr-linux命令

  •  0
  • Abhishek N  · 技术社区  · 7 年前

    tr -d \\000-\\177 < #{file_path} | wc -c

    上述命令用于删除ascii字符并检查字数。 在ruby on rails中使用backticks运行上述命令时,需要将其视为八进制格式的数字范围的\000-\177被视为字符串,并给出错误的结果。

    当我们在linux终端中的文件上运行时,上面的命令工作正常。

    一些人提出了这样做的方法。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Derek Wright    7 年前

    你试过用四次反斜杠来摆脱你的两次反斜杠吗?我进行了测试,它对我有效(注意,我缩小了ASCII匹配范围,以便得到除0以外的其他值):

    `tr -d \\\\000-\\\\170 < Rakefile | wc -c`
    => "3\n"
    

    只返回了3个字符,我的Rakefile中有一堆y