rubyでcatを書いてみる

昨日の作業記録
コマンドライン解析部分を書き直してクラスにまとめる
表示部分を一カ所にまとめる
もう少しまともするとこまではやりたいな。

unix上でファイルに実行権を与えればシェルスクリプトとして実行できる

#!/usr/bin/ruby -Ke
#
# ruby cat
#
# K! 2007/5/13
#

require "optparse"

#-------------------------------------------
#コマンドライン解析
#-------------------------------------------
class CommandLine
attr_reader :config

def initialize()
@parser = OptionParser.new
@config = Hash.new
end

def parse()
@parser.on("-n", "--number", "行番号を付け加える") {
@config[:n] = true }
@parser.on("-b","--number-nonblank","空行を除いて行番号を付け加える") {
@config[:b] = true }

@parser.parse!
end
end

#-------------------------------------------
#メイン実行
#-------------------------------------------
commandLine = CommandLine.new
commandLine.parse

if ARGV[0] != nil
file = File.open(ARGV[0])
else
file = $stdin
end


line_number = 0
while line = file.gets
if commandLine.config[:n] || ( commandLine.config[:b] && line != "\n")
print sprintf("%6d", line_number = line_number + 1), ' '
end
print line
end

file.close

このブログの人気の投稿

Prusa i3 MK3S用 IKEA Lack エンクロージャー作ったぞ、3Dプリンターの入れる箱というか台だ、力作

Prusa i3 MK3S をBearエクストルーダーへ改造したよ

エレキギター練習用にyousicianとオーディオ入力