Gauche
ある方からの投稿です。apt-getしたのにgaucheというコマンドがなくてしばらく焦りました。(goshがインタプリタ名)
(define (main args)
(define (err sts . args)
(apply format (current-error-port) args)
sts)
(if (not (= (length args) 2))
(err 1 "Usage: ~a filename\n" (car args))
(guard (e (else (err 70 "Error: ~a\n" (ref e 'message))))
(call-with-input-file (cadr args)
(lambda (in)
(for-each (lambda (t) (or (string=? t "") (print t)))
(string-split (port->string in) #[\s]))
0)))))
AWK
AWKerのある方からの投稿です。
BEGIN {
if (ARGC != 2) {
getline cmd_line_name < "/proc/self/cmdline";
split(cmd_line_name, cmd_line_name_arr, "\0");
printf("Usage: %s filename\n", cmd_line_name_arr[3]);
exit 1;
}
}
{
buffer = buffer $0 "\n";
}
END {
gsub(/[ \t\n\r\f\v]+/, "\n", buffer);
printf("%s", buffer);
}
ちょっとオレなりに脚色しましたがどうでしょう。 このスクリプトのアレなところは,/proc/self/cmdlineを\0でsplitしているところに尽きます。