在OSX和GNU中使用带有“查找”的数字来修剪文件名

时间:2018-10-25 08:15:37

标签: regex macos unix

我正在尝试搜索文件并修剪名称中带有数字的相似文件

  • 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查找和GNU查找,都无济于事。

1 个答案:

答案 0 :(得分:2)

第二个.*使模式匹配myfile和非数字后跟.txt之间的任何字符。您需要删除它,然后使用

.*myfile[^0-9/]{1,}\.txt

请注意,[^0-9/]将匹配数字和/(保留在文件名内)以外的任何字符。

或者,要确保文件名以myfile开头:

(.*/)?myfile[^0-9/]{1,}\.txt

其中(.*/)?与可选的子字符串匹配,从路径的开始到最后一个/