cat infile
abc 123 678
sda 234 345 321
xyz 234 456 678
我需要grep
关键字sda
的文件,并报告第一列和最后一列。
sda has the value of 321
如果你知道bash脚本,我需要一个Ruby中的函数,如下面的bash(awk)脚本:
awk '/sda/{print $1 " has the value of " $NF}' infile
答案 0 :(得分:1)
这样的事情怎么样?
File.open("infile", "r").each_line do |line|
next unless line =~ /^sda/ # don't process the line unless it starts with "sda"
entries = line.split(" ")
var1 = entries.first
var2 = entries.last
puts "#{var1} has the value of #{var2}"
end
我不知道你在哪里定义" sda"匹配器。如果它已修好,你可以把它放在那里。 如果没有,您可以尝试从命令行参数中获取它。
答案 1 :(得分:1)
key, *_, value = line.split
next unless key == 'sda' # or "next if key != 'sda'"
puts your_string
或者,您可以在开头使用正则表达式匹配器,以查看该行是否以“' sda”开头。或不。