我有两个档案,比方说
root@test:~ $ cat File1.txt
name1
name2
name3
root@test:~$ cat File2.txt
name4
name5
name6
和具有多个文件名的目录
root@test:~$ ls
name1
name2
name3
name4
name5
name6
name7
name8
name9
如何删除两个.txt文件中都没有的文件?所以最终结果将是
root@test:~$ ls
name1
name2
name3
name4
name5
name6
有可能在bash中写点东西来做到这一点吗???
在要删除文件的目录中:
for f in *; do
[ -z $(grep "^${f}$" <(cat /dir/with/File*.txt)) ] && echo rm -f "$f"
done
将打印出要删除的文件列表。要实际删除它们,请删除echo
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句