スクリプトfs.awkの1、2行目を見てください。コマンドラインの プログラムではなかったものですね。
#!/usr/local/bin/gawk -f
# fs.awk: 区切文字を空白からカンマ , に変更する例
BEGIN {
FS = ",";
}
/96\// {
print $1, $3;
}
行中に#がある場合、そこから後ろはコメントとなり、プログラムの実行と は関係がなくなります。行の途中からコメントにすることもできます。適切に 最低限必要なコメントを書くようにしましょう。
しかし、この説明では1行目の意味は分りませんよね。これは次のように使わ れます。まず、chmodコマンドを使ってスクリプトに実行属性を与えます。
% chmod 755 fs.awk
% ls -l fs.awk
-rwxr-xr-x 1 ogurisu ogurisu 120 Dec 10 02:18 fs.awk
%
chmod +x fs.awkとしても実行属性を与えることができます。この実行属性は、 この作業を一度行なえばそれ以降はずっと有効になります。こうしておくと、 次のようにスクリプトファイル名を指定するだけで、awkのスクリプト fs.awkが実行できます。
% ./fs.awk sample.cvs
UNIX系の OSでは、ファイルの最初の2バイトが#!で始ま
る場合、そのファイル自身を引数として#!に続くファイル名(この場合
/usr/local/bin/gawk -f)を実際の実行コマンドとして、実行する機能があ
るのです。
つまり、次の2つは同
等なのです。
% ./fs.awk sample.cvs
% /usr/local/bin/gawk -f ./fs.awk sample.cvs
これは UNIX自身がそういう仕組を持っているとしか説明のしようが ありませんが、とても便利です。まず、自分のホームディレクトリにbinとい うディレクトリを作っておきます。
% mkdir ~/bin
そして、~/.cshrcに次の一行を追加して、ログインしなおしましょう。
set path = (~/bin $path)
bashのユーザなら、次の一行を~/.profileか~/.bashrcに追加
します。
PATH=~/bin:$PATH
そして、役に立つスクリプトができたら、chmodで実行属性を与えて、どんど
ん~/binにコピーしておくのです。すると、いつでもどこでもそのスク
リプトが普通のコマンドと同じように使えます。
OGURISU Osamu