gpt4 book ai didi

ruby - 如果列少于 4 打印第 3 列,如何 ruby ?

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:59 24 4
gpt4 key购买 nike

我正在尝试使用此代码但不起作用

  ruby -a -F';' -ne   if $F[2]<4    'puts $F[3]'  ppp.txt

这是我的文件

mmm;2;nsfnjd
sadjjasjnsd;6;gdhjsd
gsduhdssdj;3;gsdhjhjsd

我在做什么请帮帮我

最佳答案

首先,与其像对待某种花哨的 Perl 一样对待 Ruby 并编写那样的脚本,不如为了清晰起见,让我们将其扩展为等效的 Ruby 代码:

$; = ';'

while gets
$F = $_.split

if $F[2]<4
puts $F[3]
end
end

您的原始代码不起作用,它不可能起作用,因为它不是有效的 Ruby 代码,此外,您没有正确引用它来通过 -e 评估项。尝试运行它我得到:

-bash: 4: No such file or directory

您还假设数组是从 1 开始索引的,但事实并非如此。它是 0 索引的。此外,Ruby 将整数值视为与字符串完全不同,从不等效,不自动转换。因此,您需要调用 .to_i 进行转换。

这是一个重写的程序来完成这项工作:

File.open(ARGV[0]) do |fi|
fi.readlines.each do |line|
parts = line.chomp.split(';')

if parts[1].to_i < 4
puts parts[2]
end
end
end

关于ruby - 如果列少于 4 打印第 3 列,如何 ruby ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43548551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com