command line에 입력을 ruby로 받아오려면 어떻게 해야 될까요?
조회수 1262회
command line에 입력을 ruby로 받아오려면 어떻게 해야되나요?
> cat input.txt | myprog.rb
> myprog.rb < input.txt
> myprog.rb arg1 arg2 arg3 ...
이런식으로 stdin을 받아올건데 제 코드 말고 다른 방법을 알고싶습니다.
소스코드
#!/usr/bin/env ruby
STDIN.read.split("\n").each do |a|
puts a
end
ARGV.each do |b|
puts b
end
1 답변
-
Unix 명령어
cat
#!/usr/bin/env ruby puts ARGF.read
ARGF는 command-line이나 STDIN과 관련된 steam입니다.
스크립트에 전달된 인자는
ARGV
배열에 저장되고, 한 원소 안에 인자 하나가 저장되어 있습니다.$ cat test.rb #!/usr/bin/env ruby ARGF.each_with_index do |line, idx| print ARGF.filename, ":", idx, ";", line end #d line에서 전달된 파일(login 포함)에 모든 줄을 출력합니다. ARGF.each do |line| puts line if line =~ /login/ end $ sudo cat input.txt | ./test.rb -:0;input.txt 안에 있는 문자열입니다 -:1;나는 먹는다 밥 $ ./test.rb input.txt input.txt:0;input.txt 안에 있는 문자열입니다 input.txt:1;나는 먹는다 밥 $
댓글 입력