ファイル末尾の空白行の削除
30分プログラム、その639。ファイル末尾の空白行の削除。
行末の空白行の次に、ファイル末尾の空白行って嫌ですよね。なんとなく。
というわけで、ファイル末尾の空白行を削除するスクリプトを書いてみました。ファイルをその場(in place)で書き換える機能はないので、forと組合せるなりinplaceコマンドを使うなりしてください。
あと、ホントはこれをEmacsLispで可視化・自動削除をやりたかったけどうまくできなかった。たぶん、blank-mode.elをちょこっとカスタマイズすればできる気がするんだけど・・・。
使い方
$ echo "a\nb\n\n\n\n" | sed 's/$/_/' a_ b_ _ _ _ _ $ echo "a\nb\n\n\n\n" | gosh delete-tail-lines.scm | sed 's/$/_/' a_ b_
ソースコード
#! /opt/local/bin/gosh ;; -*- mode:scheme; coding:utf-8 -*- ;; ;; delete-tail-lines.scm - ;; ;; Copyright(C) 2009 by mzp ;; Author: MIZUNO Hiroki / mzpppp at gmail dot com ;; http://howdyworld.org ;; ;; Timestamp: 2009/08/14 21:52:28 ;; ;; This program is free software; you can redistribute it and/or ;; modify it under MIT Lincence. ;; (use srfi-1) (define (delete-tail-lines xs) (reverse (drop-while (cut string=? "" <>) (reverse xs)))) (map print (delete-tail-lines (port->string-list (standard-input-port))))