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

在命令行中使用Ruby,如何获取循环遍历每个列的特定列,ruby,enumeration,Ruby,Enumeration,我有一个命令行脚本,返回如下内容: col1 col2 col3 col4 col5 a b c d e a1 b2 c2 d2 e2 a3 b3 c3 d3 e3 .. .. . system("ls -l") 现在我想从col3中获取值,然后为第3列中的每一行调用另一个命令行脚本 我知道ruby有一个系统(“…”)函数,可以在控制台中运行脚本 我的命令行脚本与调用类似: col1 col2 col3 col4 col5 a b

我有一个命令行脚本,返回如下内容:

col1 col2 col3 col4 col5
a    b    c    d    e
a1   b2   c2   d2   e2
a3   b3   c3   d3   e3
..
..
.
system("ls -l")
现在我想从col3中获取值,然后为第3列中的每一行调用另一个命令行脚本

我知道ruby有一个系统(“…”)函数,可以在控制台中运行脚本

我的命令行脚本与调用类似:

col1 col2 col3 col4 col5
a    b    c    d    e
a1   b2   c2   d2   e2
a3   b3   c3   d3   e3
..
..
.
system("ls -l")
现在,我如何捕获第3列,并迭代每个值并启动另一个脚本,将第3列的值作为参数传递?

IO.popen('ls-l').lines.map(&:split)[1..-1]。转置[2]。每个|
IO.popen('ls -l').lines.map(&:split)[1..-1].transpose[2].each do |e|
  puts '>>' + e + '<<'
end

把“>>”+e+“你可以吃点像这样的东西

#!/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}
在一个名为
的文件中,使用col
,并将其与管道一起使用,如

$ ls-like-cmd | take-col 5 3 | next-cmd

“每列的值行”、“第3列中的每行”、“包含9列的信息行”、“第3列,以及对每个值的迭代”:这些表达式很难理解。sawa我已经更新了它,您的权利措辞很混乱,希望这样更好。我正在本地运行此操作,所有输入都是可信的。当然,我也有同样的怀疑。我宁愿什么都不说,只是在这里发布一个简单的解释,所以有时会引发安全政治迫害,就好像黄金代码本身处于危险之中一样,所以我总是要说警告。我应该把它准备好,然后粘贴进去。为了公平地对待审问者,这些年来我们经常会回答一些问题,我们必须考虑未来的访问者会看到什么……你们对这些问题的考虑非常周到: