工作中遇到一个小问题,有一个目录下的文件太多(6位数),需要进行删除,但不是全部删除,而是满足一定条件的文件名才删除,此时使用 ls xxx* | xargs rm 已经无能为力了,于是只能写一个小的shell来删除,如下:
#!/bin/bash
for f in `ls /root `
do
c=`echo $f | grep -c "sendmsg"`
if [ $c -eq 1 ]; then
echo $f;
rm "/root/$f"
else
echo "-";
fi
done
第6行
c=`echo $f | grep -c "sendmsg"`
目的是获取满足条件的个数,因为是for loop 方式,每次处理一个文件,所以这里c获取的值只可能为0或1
之后的事情就不用再说了,mark以供参考