在命令行中使用Ruby,如何获取遍历每个循环的特定列

|| 我有一个返回以下内容的命令行脚本:
col1 col2 col3 col4 col5
a    b    c    d    e
a1   b2   c2   d2   e2
a3   b3   c3   d3   e3
..
..
.
现在,我要从col3中获取值,然后为列3中的每一行调用另一个命令行脚本。 我知道ruby有一个system(\“ .. \”)函数,它将在控制台中运行脚本。 我的命令行脚本非常类似于调用以下内容:
system(\"ls -l\")
现在,我如何捕获第3列,并遍历每个值并触发另一个脚本,该脚本将col#3中的值作为参数传递?     
已邀请:
        
IO.popen(\'ls -l\').lines.map(&:split)[1..-1].transpose[2].each do |e|
  puts \'>>\' + e + \'<<\'
end
我应该警告您,如果将其带到明显的下一步,并在块中构造对“ system”或什至
popen
的调用,则会造成代码注入风险。在这种特定情况下,对于文件所有者而言,仅预期字母数字结果,仅对那些字符进行过滤就足够了。     
        你可以像
#!/usr/bin/env ruby
cols, take_col = ARGV[0],ARGV[1]
puts $stdin.read.split.drop(cols).select.with_index{|x, i| i % cols == take_col - 1}
在一个名为“ 5”的文件中,并与管道一起使用,例如
$ ls-like-cmd | take-col 5 3 | next-cmd
    

要回复问题请先登录注册