检查文件是否为空

cod*_*c24 2 shell awk text-processing

我的文件中没有任何数据 需要检查以下场景并返回文件为空,否则不为空

if file contains no data but as only spaces return it as FILE is EMPTY 
if file contains no data but as only tabs   return it as FILE is EMPTY
if file contains no data but as only empty new line  return it as FILE is EMPTY  
Run Code Online (Sandbox Code Playgroud)

下面的代码是否能满足我上述所有情况?或一次性使用任何最佳方法

if [ -s /d/dem.txt ]
then
    echo "FILE IS NOT EMPTY AS SOME DATA"
else
    echo "FILE IS EMPTY NOT DATA AVAILABLE"
fi 
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 5

您可以使用它awk来实现以下目的:

awk 'NF {exit 1}' file && echo "empty" || echo "not empty"
Run Code Online (Sandbox Code Playgroud)

NF仅当文件中存在非空白字符时,条件才为真。

  • 在所有 awk 中: `awk 'NF{exit r=1}END{print (r?"not ":"") "empty"}'` (4认同)