请教大神shell如何删除一个文本文件中没有列出的所有文件夹
我有一个文本文件列出了所有需要的问价夹,格式如下:AAA
BBB
CCC
然后在我的路径下有很多文件夹,例如:
AAA BBB CCC DDD EEEFFF ...... ZZZ
请教大神shell如何删除一个文本文件中没有列出的所有文件夹?
回复 1# jiawei2426
cat 1
AAA
BBB
CCC
awk '{a[$1]++}END{while(("ls -p"|getline b)>0){if(b~/\/$/){sub(/\//,"",b);if(!a){system("rm -rf "b"")}}}}' 1 本帖最后由 legs 于 2023-07-25 15:09 编辑
给你个另一种解法:perl -lnE'--$h{$_}}{++$h{$_}&&-d&&`rm -rf $_`for<*>' x.txt
回复 1# jiawei2426
test-1.sh
#!/bin/bash
FileList="1.txt"
for ThisFolder in `ls -1p | grep '/`; do
grep -x -q "${ThisFolder:0:-1}" $FileList
if [ $? -ne 0 ]; then
rm -rf "$ThisFolder"
fi
done 回复 1# jiawei2426
test-2.sh
#!/bin/bash
FileList="1.txt"
FileTemp="/dev/shm/1.tmp"
ls -1p | grep '/' | sed 's#/##' > $FileTemp
for ThisFolder in `grep -vxFf $FileList $FileTemp`; do
rm -rf "$ThisFolder"
done
页:
[1]