シェル・スクリプト・リファンレス
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス

 ファイルからの読み込み

 readを利用すると,ファイルの内容を読み込むこともできる。読み込みには以下のように記述する。


BUFIFS=$IFS
IFS=

exec 3< 入力ファイル名
while read FL 0<&3
do
	処理
done
exec 3<&-

IFS=$BUFIFS

 「入力ファイル名」には読み込みたいファイル名を,処理には読み込んだファイルの処理内容を記述する。実行すると,ファイルの内容を1行ずつ読み込み,変数FLに代入していく。処理中で$FLとすることで,読み込んだファイル内容を利用できる。

 たとえば,以下のようなシェル・スクリプト「add_number.sh」があったとする。


#!/bin/sh

l_num=1

BUFIFS=$IFS
IFS=

exec 3< $1
while read FL 0<&3
do
	echo "$l_num : $FL"
	l_num=`expr $l_num + 1`
done
exec 3<&-

IFS=$BUFIFS

 このスクリプトを実行すると,読み込んだファイルの行頭に行番号を付けていく。


$ ./add_number.sh document.txt
1 : Nikkei Linux 2005/4
2 :     ISSUE 1,  How to use Samba server
3 :     ISSUE 2,  OpenOffice.org 2.0
4 :     SUPPLEMENT, Handbook if Shell