删除目录中不包含xxx字符创的文件

a.txt,b.txt,c.txt文件内容如下

root@oldboy test$cat a.txt
sada
xxx
qjieinnxxx
root@oldboy test$cat b.txt
dsfsgxxx
xxx
sadsfsge
root@oldboy test$cat c.txt
adsf
asfgegr
afagsd


法一

for file in $(ls);do ! grep -lq xxx $file && rm $file;done

法二

for file in $(ls);do ! grep -wq xxx $file && echo $file;done

法三

#!/bin/bash
for file in $(ls *.txt)
 do
   grep -wq xxx $file
   if [ $? -eq 1 ]; then
      rm -f $file
   else
      continue
   fi
 done

执行脚本即把c.txt删除。

root@oldboy test$ls
a.txt  b.txt  c.txt  test.sh
root@oldboy test$sh test.sh
root@oldboy test$ls
a.txt  b.txt  test.sh


你可能感兴趣的:(grep)