sum of uids(/etc/passwd)

13 views
Skip to first unread message

niceguy oh

unread,
Jan 23, 2015, 2:59:56 AM1/23/15
to rub...@googlegroups.com
uid 합을 구하는 간단한(도움 덕분에) 루비 독특한 세줄 코드입니다..ㅎㅎ..
map,collect 다 되는군요.흠..ㅎ

#!/usr/bin/env ruby
sum=0
File.readlines("/etc/passwd").collect {|line| sum += line.split(/:/)[2].to_i}
#File.readlines("/etc/passwd").map {|line| sum += line.split(/:/)[2].to_i} # map or collect works.
puts "The sum of uid is #{sum}"


# 다른 방식으로는 이렇게..처음엔 아래와 같이 만들었고,,도움주신분들 덕분에..위와같이 더 루비같이 되는군요. ㅎ..
#!/usr/bin/env ruby
P="/etc/passwd"
i=0
sum_uid=0
a=File.readlines(P)
while i < a.size
  # Getting array for each users
  getuid=a[i].split(/:/)
  # Getting uid for each users
  uid=getuid[2]
  # Getting user for each users
  user=getuid[0]
  # summing uids. Should convert to integer
  sum_uid+=uid.to_i
  i += 1
end

  puts "sum of uid = #{sum_uid}"


 

neofeel

unread,
Jan 23, 2015, 3:10:04 AM1/23/15
to rub...@googlegroups.com
sum = File.readlines("/etc/passwd").map {|line| line.split(/:/)[2].to_i}.reduce(0, :+)

이렇게 하실 수 있습니다.

2015. 1. 23., 오후 4:59, niceguy oh <wnap...@gmail.com> 작성:

--

---
이 메일은 Google 그룹스 '한국 루비 사용자 모임' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 rubykr+un...@googlegroups.com에 이메일을 보내세요.
http://groups.google.com/group/rubykr에서 이 그룹을 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.

Reply all
Reply to author
Forward
0 new messages