【问题标题】:Obtain output from a bash command in Ruby从 Ruby 中的 bash 命令获取输出
【发布时间】:2014-07-16 12:07:29
【问题描述】:

我正在尝试获取 bash 命令的输出。更准确地说,我需要在文件中存储包含字符串的行数:

variable_name = AAAAAAA
PATH_TO_SEARCH = .
COMMAND = "grep -R #{variable_name} #{PATH_TO_SEARCH} | wc -l"

为了执行命令,我尝试了两种方法:

num_lines = %x[ #{COMMAND} ]
num_lines = `#{COMMAND}`

但问题是:在“num_lines”中,我有 1) 包含字符串 (OK!)2) 的行数strong> 来自 grep 的输出,例如“grep: /home/file_example.txt: 没有这样的文件或目录”(否!)。 我想只存储第一个输出。

【问题讨论】:

  • 你的意思是第一个输出只作为第一个文件的输出吗?
  • COMMAND = "grep ... | grep -v '^grep:' | wc -l"

标签: ruby bash command output


【解决方案1】:

看起来您可能只需要隐藏错误消息。

“您可以使用 -s 或 --no-messages 标志来抑制错误。”发现自How can I have grep not print out 'No such file or directory' errors?

【讨论】:

  • 更一般地说,在命令后使用&>/dev/null,它是抑制所有输出的参数。
猜你喜欢
  • 2016-04-30
  • 1970-01-01
  • 2021-11-10
  • 2020-03-22
  • 1970-01-01
  • 2016-01-22
  • 1970-01-01
  • 2020-05-19
  • 2012-08-26
相关资源
最近更新 更多