ファイルが空の場合は通知します。
[[ ! -s $file ]] && echo "hello there I am empty file !!!"
しかし、ファイルにスペース(スペースまたはタブ)があるかどうかを確認するには?
- 空のファイルにはスペース/ TABを含めることができます。
答え1
grep
スペース以外の文字でのみ機能します。
grep -q '[^[:space:]]' < "$file" &&
printf '%s\n' "$file contains something else than whitespace characters"
答え2
他の答えと似ていますが、否定を使用します。grep -q
if ! grep -q '[^[:space:]]' "$file"; then
echo "file is empty"
else
echo "File has data"
fi
答え3
空のファイルの内容を確認したい場合if条件 [[ ... ]]
その後、grepを(-qなし)で囲みます-z $( grep ... )
。
if [[ -z $(grep '[^[:space:]]' $file) ]] ; then
echo "Empty file"
...
fi
実行時に次のエラーを回避するには、これを使用する必要があります。
$ [[ grep -q '[^[:space:]]' $file ]]
-bash: 条件付き二項演算子が必要です。
-bash: "-q" 付近の構文エラー