林triying使用此代碼,但不能正常工作如果列小於4列第3列如何紅寶石?
ruby -a -F';' -ne if $F[2]<4 'puts $F[3]' ppp.txt
這是我的文件
mmm;2;nsfnjd
sadjjasjnsd;6;gdhjsd
gsduhdssdj;3;gsdhjhjsd
什麼是做撥錯請幫我
林triying使用此代碼,但不能正常工作如果列小於4列第3列如何紅寶石?
ruby -a -F';' -ne if $F[2]<4 'puts $F[3]' ppp.txt
這是我的文件
mmm;2;nsfnjd
sadjjasjnsd;6;gdhjsd
gsduhdssdj;3;gsdhjhjsd
什麼是做撥錯請幫我
首先,不要把Ruby當成某種奇特的Perl和Perl編寫腳本這樣,我們就擴大到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 -a -F';' -ne ' if $F[1] < "4" ;puts $F[2] end ' ppp.txt
非常三江源。 – zzero