Apache Groovyでcatコマンドを実装する
そのまんまですね!
#! /home/koji/.sdkman/candidates/groovy/current/bin/groovy
// コレが実際のcat処理。1行ずつ読み込んで表示しているだけ
def output (BufferedReader stream) {
String line
while((line = stream.readLine()) != null) {
println line
}
}
// 引数が有るならそれをファイルとして内容を表示する
if (args.length > 0) {
args.each { String fileName ->
def stream = new File(fileName).newReader()
output(stream)
}
// 引数がないなら標準入力から読み込む
} else {
def stdin = new BufferedReader(new InputStreamReader(System.in))
output(stdin)
}
特に難しい点はありません。
ファイルからの読み込みであろうが、標準入力(System.in
)からの入力であろうが、同じBufferedReader
クラスでラップしているので同じ処理を適用できます。
1行目に#! Apache Groovyへのパス
を指定しているので、このファイルcat.groovy
という名前で保存しておけば、
./cat.groovy hoge.txt piyo.txt
のような感じで実行できます。 ※本当はファイルの存在チェックなど必要です
公開日:2018/03/23