【发布时间】:2015-11-01 15:14:16
【问题描述】:
count=0; #count for counting
IFS='
'
for x in `ls -l $input`; #for loop using ls command
do
a=$(ls -ls | awk '{print $6}') #print[6] is sizes of file
echo $a
b=`echo $a | awk '{split($0,numbers," "); print numbers[1]}'`
echo $b
if [ $b -eq 0 ] # b is only size of a file
then
count=`expr $count + 1` #if b is zero , the count will increase one by one
fi
echo $count
done
我想找到 0 大小的文件。我使用 find 命令来做到这一点。第二件事是我想使用 ls 命令和 awk 计算大小为 0 的文件的数量。但它不是真正的代码。我的错误是什么?
【问题讨论】:
-
我不知道其他用法。 ls不是真的吗? @gniourf_gniourf
-
@lurker 即使这样也不推荐,因为如果任何文件名包含换行符,输出的行数不是文件数。
-
@chepner 确实如此,尽管这种情况非常罕见。我会删除我的建议。
-
我知道这种情况很少见,但我认为公共论坛中的建议应该比您自己使用的代码更注意正确。 (你永远不知道在什么情况下有人会尝试使用你的建议,如果你能避免由于未说明的假设而导致不愉快的意外,那就更好了。)