删除目录中名称与文件列表中的一行不匹配的所有文件

内森

我有一个包含1000多个文件的目录。在一个文本文件中,我大约有50个文件名,每行一个。我想删除目录中所有文件名与列表中的条目不符的文件。最好的方法是什么?我启动了一个shell脚本,但是无法确定要确定文件名在列表中的正确命令。谢谢。

伊曼纽尔

我意识到,任何询问如何删除文件的问题都必须格外小心。我的第一个答案太仓促,我没有接受文件列表可能格式错误以与egrep一起使用的事实。我编辑了答案以减少这种风险。

这应该适用于名称中没有空格的文件:

首先重建您的文件列表,以确保匹配确切的文件名:

sed -e 's,^,^,' -e 's,$,$,'  filelist  > newfilelist 

建立rm命令

cd your_directory
ls | egrep -vf newfilelist   | xargs -n 1 echo rm  >  rmscript

检查rm脚本是否适合您(可以使用“ vim”或“ less”来完成)。
然后执行以下操作:

sh -x rmscript

如果文件名中带有空格(如果文件名中带有,"则将无法使用):

ls | egrep -vf newfilelist  | sed 's,^\(.*\)$,rm "\1",' > rmscript

当然,文件列表不应位于同一目录中!

编辑:

Nathan的文件列表包含与目录中所有文件匹配的名称(例如“ html”匹配“ bob.html”)。因此,由于egrep -vf吸收了所有流,因此没有删除任何内容我添加了一个命令,在每个文件名前后加上“ ^”和“ $”。我很幸运,Nathan的文件列表是正确的。如果它是使用CR-LF结束行或其他空格进行DOS格式化的,则egrep不会保留任何文件,而所有文件都将被删除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Qt从文件中删除一行

来自分类Dev

Perl删除目录中的所有文件

来自分类Dev

从文件中删除一行代码

来自分类Dev

删除文件中的一行

来自分类Dev

从特定扩展名的所有文件中删除最后一行

来自分类Dev

删除HTML文件中除第一行之外的所有文本行吗?

来自分类Dev

如何从目录中删除所有文件的最后一行?

来自分类Dev

如何删除目录中超过2周的目录中的所有目录(最新目录中与文件模式匹配的目录除外)?

来自分类Dev

如何删除所有子目录中具有给定名称的所有文件?

来自分类Dev

如何从目录中删除所有文件?

来自分类Dev

从文件中删除最后一行

来自分类Dev

使用sed删除文件中第一行的所有重复出现

来自分类Dev

添加或删除表的一行,然后将所有数据放入JSON文件中

来自分类Dev

如何获取所有文件的名称(在一个目录中)包含一行特定的文本?

来自分类Dev

删除目录中的所有文件

来自分类Dev

查找所有文件,在每个子目录中创建一行一行的CSV文件,并在列中输入文件名

来自分类Dev

从文件中删除一行

来自分类Dev

删除文件中的一行

来自分类Dev

删除所有子目录中的匹配文件

来自分类Dev

查找和删除文件,同时保留所有匹配的文件(如果在特定目录中)

来自分类Dev

如何在目录中的所有文件前添加一行?

来自分类Dev

删除单个文件中与第一列对齐的关键字不匹配的所有行

来自分类Dev

从另一个文件中删除文件中与文本不匹配的所有行

来自分类Dev

从目录中的所有文件夹名称中删除第一个单词

来自分类Dev

删除目录中的所有文件,而不删除目录

来自分类Dev

对于文件A中的每一行,请使用模式替换文件B中的所有匹配行

来自分类Dev

如何列出以'sh'开头的特定目录中的所有文件,包括一行中的inode编号

来自分类Dev

Specman e 错误:使用“对于文件中的每一行”时文件不匹配

来自分类Dev

为目录中的所有文件取特定列python的每一行的正弦

Related 相关文章

  1. 1

    Qt从文件中删除一行

  2. 2

    Perl删除目录中的所有文件

  3. 3

    从文件中删除一行代码

  4. 4

    删除文件中的一行

  5. 5

    从特定扩展名的所有文件中删除最后一行

  6. 6

    删除HTML文件中除第一行之外的所有文本行吗?

  7. 7

    如何从目录中删除所有文件的最后一行?

  8. 8

    如何删除目录中超过2周的目录中的所有目录(最新目录中与文件模式匹配的目录除外)?

  9. 9

    如何删除所有子目录中具有给定名称的所有文件?

  10. 10

    如何从目录中删除所有文件?

  11. 11

    从文件中删除最后一行

  12. 12

    使用sed删除文件中第一行的所有重复出现

  13. 13

    添加或删除表的一行,然后将所有数据放入JSON文件中

  14. 14

    如何获取所有文件的名称(在一个目录中)包含一行特定的文本?

  15. 15

    删除目录中的所有文件

  16. 16

    查找所有文件,在每个子目录中创建一行一行的CSV文件,并在列中输入文件名

  17. 17

    从文件中删除一行

  18. 18

    删除文件中的一行

  19. 19

    删除所有子目录中的匹配文件

  20. 20

    查找和删除文件,同时保留所有匹配的文件(如果在特定目录中)

  21. 21

    如何在目录中的所有文件前添加一行?

  22. 22

    删除单个文件中与第一列对齐的关键字不匹配的所有行

  23. 23

    从另一个文件中删除文件中与文本不匹配的所有行

  24. 24

    从目录中的所有文件夹名称中删除第一个单词

  25. 25

    删除目录中的所有文件,而不删除目录

  26. 26

    对于文件A中的每一行,请使用模式替换文件B中的所有匹配行

  27. 27

    如何列出以'sh'开头的特定目录中的所有文件,包括一行中的inode编号

  28. 28

    Specman e 错误:使用“对于文件中的每一行”时文件不匹配

  29. 29

    为目录中的所有文件取特定列python的每一行的正弦

热门标签

归档