【问题标题】:Ruby script being a pain to runRuby 脚本运行起来很痛苦
【发布时间】:2021-01-11 21:41:08
【问题描述】:

我在名为 SequenceScripts 的文件夹中有一个 .gz 文件。 我想解压缩它,然后在其上运行一个 ruby​​ 脚本,重新格式化它并将其放入文本文件中。 ruby 脚本位于同一文件夹中。 我正在使用 Mac 上的终端执行此操作。

我使用的命令是:

gzcat tbb.fq.gz | ./reformat_sequence_data.rb > SLX-8691.ART03.txt

我得到的回复是:env: ruby\r: No such file or directory

ruby 脚本以:

开头
#!/usr/bin/env ruby

脚本中没有回车(检查隐藏字符可见)。 当我从命令行运行ruby -v 时,我得到:ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]

我不知道发生了什么,但我怀疑额外的回车可能与它有关,但我不知道它为什么在那里。有人可以帮忙吗?

【问题讨论】:

  • 文件应该以#!/usr/bin/env ruby开头,注意井号。
  • 抱歉错别字,哈希实际上在那里

标签: ruby bash


【解决方案1】:

我建议你还是直接运行dos2unixsed

dos2unix ./reformat_sequence_data.rb
sed -i 's|\r||' ./reformat_sequence_data.rb 

如果您的文件有\r (0D),将使用以下命令显示行:

hexdump -C < ./reformat_sequence_data.rb | grep -w 0d

【讨论】:

  • 对它进行排序很棒......有点。太烦人了,但现在使用以下方法解决了: $ cat ./reformat_sequence_data.rb | col -b > ./reformat_sequence_data.rb
  • @user3632206 这很危险。切勿同时打开文件进行输入和输出,因为这可能会截断文件。为什么不直接使用dos2unixsed
  • 哦,真的吗? mac 上没有 dos2unix 并且 sed 出现了错误,所以我遵循了阻力最小的路径。似乎工作正常。对不起-不会再这样做了
猜你喜欢
  • 1970-01-01
  • 2014-08-18
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多