ファイルの先頭にテキストを追加するスクリプト
30分プログラム、その543。ファイルの先頭にテキストを追加するスクリプト。
ファイルの末尾にテキストを追加したいときは、
$ echo hogehoge >> some_file.txt
でいいけど、先頭に追加するのは大変だよね。作っておけば、全ソースコードの先頭にライセンス条項を追加するのも簡単だしね。
と、思っていたんだけど、
$ cat header.txt some_file.txt > other_file.txt
でいいんじゃね?というのに途中で気がついた。というか、どんどん単純化していったら、catの再発明になりかけたので、慌てて方針を変えた。あぶない、あぶない。
使い方
$ cat test foo bar baz # 先頭にコメントを追加する $ echo "# this is sample file" | perl append-header.pl test $ cat test # this is sample file foo bar baz
ソースコード
#! /usr/bin/perl # -*- mode:perl; coding:utf-8 -*- # # append-header.pl - # # Copyright(C) 2009 by mzp # Author: MIZUNO Hiroki / mzpppp at gmail dot com # http://howdyworld.org # # Timestamp: 2009/03/10 21:20:38 # # This program is free software; you can redistribute it and/or # modify it under MIT Lincence. # use strict; use warnings; use Data::Dumper; sub appendHeader($$) { my ($header,$path) = @_; open(my $fh,'+<',$path); my @orig = <$fh>; seek $fh,0,0; print $fh $header; print $fh @orig; close $fh; } my $header = join("",<STDIN>); foreach my $path (@ARGV){ appendHeader $header,$path; }