シェルスクリプトでファイルが空かどうか確認する
Contents
ファイルが空(0byte)かどうか確認する
シェルスクリプトでファイルが空ファイル(0byete)かどうか確認する場合はifコマンドの「-s」のオプションを利用します。
$ sh test.sh #!.bin/bash FILE=test.txt if [ ! -s $FILE ]; then #空の場合の処理 echo "$FILE は0byte" else # 0byte 以上の処理 ls -l $FILE fi
但し、改行は入っている場合は0byte 以上で扱われます
$ cat -e test.txt $ $ $ $ $ $ # 改行あるので、空ファイルとして扱われない $ sh test.sh -rw-rw-r-- 1 ex-adm ex-adm 6 9月 3 11:10 test.txt
空の改行が含まれる可能性がある場合は、ifコマンドで空ファイルか確認する前に、sedコマンドで空の行を削除してから実行します。
空の行を削除するには「/bin/sed -i '/^$/d’ (ファイル名)」で空の行が削除されます
#!.bin/bash FILE=test.txt /bin/sed -i '/^$/d' ${FILE} if [ ! -s $FILE ]; then echo "$FILE は0byte" else ls -l $FILE fi
ディスカッション
コメント一覧
まだ、コメントがありません