ファイルの読み込み
シェルのコーディングを良く忘れるのでこれをメモ。特にファイルの読み込みは、よく忘れ去っています。
この例では、空行をスキップする処理を加えています。
ファイル読み込みサンプル(断片)
# ファイルの存在および読み込み権限確認 if [ ! -r data.txt ]; then echo '入力ファイル[data.txt]が見つからないか、または読み込み権限がありませんでした。処理 中断(101)します。' exit 101 fi # ファイルの読み込み。空行は処理スキップします。 while read line do if [ ${#line} -eq 0 ]; then continue fi echo '読み込んだ行データは'${line}'でした。' done <data.txt
ポイント
- ファイルの存在および読み込み権限チェックをおこないましょう。
- 空行を処理スキップする必要は、いろいろな場面で存在するでしょう。
- サブシェルを用いない、安全な書き方です。
ファイル読み込みサンプル(断片): サブシェルを利用した例
# ファイルの存在および読み込み権限確認 if [ ! -r data.txt ]; then echo '入力ファイル[data.txt]が見つからないか、または読み込み権限がありませんでした。処理 中断(101)します。' exit 101 fi # ファイルの読み込み。空行は処理スキップします。 cat data.txt | sed -e '/^$/d' | while read line do echo '読み込んだ行データは'${line}'でした。' done
ポイント
- サブシェルを使った書き方です。子プロセスになるので副作用が発生する場合があります。