我正在尝试在其内容中找到包含“some string user input”的txt和html文件。
在命令行中,以下命令工作正常。
grep -ri --include \*.txt --include \*.html string .
但尝试将其编码为ruby程序时如下:
s = ARGV[0]
files = %x(grep -ri --include \*.txt --include \*.html #{s} .)
这就是我运行程序的方式
$ ruby app.rb string
它不起作用。
关于如何让它以这种方式运作的任何想法?
提前致谢
答案 0 :(得分:1)
\
在Ruby 中转义*
,不需要转义,因此传输到shell的文本为grep -ri --include *.txt --include *.html filename .
。转义反斜杠以使shell保持原样:
files = %x(grep -ri --include \\*.txt --include \\*.html #{s} .)
答案 1 :(得分:0)
#!/bin/env ruby
# encoding: utf-8
s = ARGV[0]
files = %x|grep -ri --include \*.txt --include \*.html #{s} .|
puts files
你可以使用|代替