shell 逻辑循环遍历文件并根据关键字取出wc -l 值并做比较

场景:现需要从目录的大量文件中查找出含有某关键字的文件并删除,已知相关靶向文件中有存在不符合要求的情况,比如本次确定的靶向文件中相关关键字出现次数有且仅有一次。

#!/bin/bash
#进入指定目录下
cd /tmp
#将含有指定关键字的文件全部筛选出备用
grep -l "baobi" *.txt >1.txt

#对筛选出的结果进行遍历条件筛选
while read line 
#a=`grep -o "baobi" ${line}|wc -l`
do
#将单次循环的遍历结果进行取值 a
a=`grep -o "baobi" ${line}|wc -l`
#将取值进行比较要求小于2
        if [ $a -lt 2 ]; then
#将结果追加输出到 tmp.txt
        echo $line >> tmp.txt
        fi
done < 1.txt

ps:感谢雷哥给予的指导


版权声明:本文为Lucis_tomato原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。