我正在shell程序中编写代码,如果目录中有多种类型的文件,我想做一些操作。
我尝试过这样的事情:
if "$(find . -name '*_type1.DAT' | wc -l)" >1 then
echo "TRUE"
else echo "FALSE"
endif
哪里找到。带有wc -l的-name命令,计算我有_type1.DAT文件终止的文件数。我希望这部分用作整数,比较它,如果超过1,则做一些动作。
有人知道是否有可能,或者有更好的想法做出这个条件陈述?
如果你可以避免它,don't use csh。如果这是遗留代码,您应该使用以下内容:
if ( `find . -name '*_type1.DAT' -printf "x\n" | head -2 | wc -l` > 1) then
echo "TRUE"
else
echo "FALSE"
endif
说明:
$(xyz)
相同。-printf "x\n"
确保每个条目只打印一行。即使某些文件名包含换行符,也会打印一行。head -2
文件,find
将迫使"*_type1.DAT"
提前退出。这是不完美的,find
可能会在注意到它的标准已经关闭之前继续处理很多行。