たぶん完成
This commit is contained in:
parent
65c7fc830b
commit
40c822d7f1
1 changed files with 17 additions and 21 deletions
38
wc.rb
38
wc.rb
|
@ -8,29 +8,24 @@ bytes = 0
|
||||||
|
|
||||||
options = {}
|
options = {}
|
||||||
OptionParser.new do |opts|
|
OptionParser.new do |opts|
|
||||||
opts.on('-l') do
|
opts.on('-l') { options[:lines] = true }
|
||||||
options[:lines] = true
|
opts.on('-w') { options[:words] = true }
|
||||||
end
|
opts.on('-c') { options[:bytes] = true }
|
||||||
opts.on('-w') do
|
|
||||||
options[:words] = true
|
|
||||||
end
|
|
||||||
opts.on('-c') do
|
|
||||||
options[:bytes] = true
|
|
||||||
end
|
|
||||||
end.parse!
|
end.parse!
|
||||||
|
|
||||||
file_path = ARGV[0]
|
input = if !ARGV.empty?
|
||||||
if file_path.nil?
|
File.read(ARGV[0])
|
||||||
puts 'ファイルパスがありません。'
|
elsif !$stdin.tty?
|
||||||
exit
|
$stdin.read
|
||||||
end
|
else
|
||||||
|
puts 'ファイルパスまたはパイプラインからの入力がありません。'
|
||||||
|
exit
|
||||||
|
end
|
||||||
|
|
||||||
File.open(file_path) do |file|
|
input.each_line do |line|
|
||||||
file.each_line do |line|
|
lines += 1
|
||||||
lines += 1
|
words += line.split.size
|
||||||
words += line.split.size
|
bytes += line.bytesize
|
||||||
bytes += line.bytesize
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
options = { bytes: true, lines: true, words: true } if options.empty?
|
options = { bytes: true, lines: true, words: true } if options.empty?
|
||||||
|
@ -39,4 +34,5 @@ result << lines if options[:lines]
|
||||||
result << words if options[:words]
|
result << words if options[:words]
|
||||||
result << bytes if options[:bytes]
|
result << bytes if options[:bytes]
|
||||||
|
|
||||||
puts "#{result.join(' ')} #{file_path}"
|
file_name = ARGV[0]
|
||||||
|
puts "#{result.join(' ')} #{file_name}"
|
||||||
|
|
Loading…
Reference in a new issue