我正在尝试搜索一个文件并删除名称中包含数字的相似文件
- myfile.txt
来自
- myfile_00_04_version.txt
- myfile_00.txt
.
find -E . -iregex ".*myfile.*([^0-9]{1,})\.txt"
删除 myfile_00.txt,但不删除 myfile_00_04_version.txt
我尝试了 OSX find 和 GNU find,但没有成功。
最佳答案
第二个 .*
让模式匹配 myfile
和后跟 .txt
的非数字之间的任何字符。您需要将其删除,然后使用
.*myfile[^0-9/]{1,}\.txt
请注意,[^0-9/]
将匹配除数字和 /
之外的任何字符(以保留在文件名内)。
或者,确保文件名以 myfile
开头:
(.*/)?myfile[^0-9/]{1,}\.txt
其中 (.*/)?
匹配从路径开头到最后一个 /
的可选子字符串。
关于regex - 在 OSX 和 GNU 中删除带有 "find"数字的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52984483/