我有一个包含〜8000个文件
的文件的目录output/Manuscript_00750_AnimalGiants-compact.json
output/Manuscript_00750_AnimalGiants-expanded.json
output/Manuscript_00750_AnimalGiants.json
output/Manuscript_00752_AnimalGiants-compact.json
output/Manuscript_00752_AnimalGiants-expanded.json
output/Manuscript_00752_AnimalGiants.json
output/Unit_TZH_12345_Foo-compact.json
output/Unit_TZH_12345_Foo-expanded.json
output/Unit_TZH_12345_Foo.json
我需要提出一个正则表达式来使用find
工具来选择简单的Manuscript:
output/Manuscript_00750_AnimalGiants-compact.json
output/Manuscript_00752_AnimalGiants-compact.json
提出正则表达式很容易,但让find
合作是困难的部分。
这是我的正则表达式:
/Manuscript[0-9_a-zA-Z]+-compact\.json/
以下是我尝试过的一些命令;都产生零结果。 cwd是output/
上面的目录:
find output -regex "Manuscript[0-9_a-zA-Z]+-compact\.json"
find output -regex "\./output/Manuscript[0-9_a-zA-Z]+-compact\.json/"
find output -regex ".*\Manuscript[0-9_a-zA-Z]+-compact.*\json"
但是这个命令确实产生了结果 - 它选择所有以" Manuscript"开头的文件,这显然太宽泛了:
find output -regex ".*\Manuscript.*\json"
这里find
的正确的正则表达式格式是什么?
答案 0 :(得分:2)
在OSX上,您可以将此find -E output -regex '.*/Manuscript[0-9_a-zA-Z]+-compact\.json$'
与扩展的正则表达式一起使用:
find
在gnu find output -regextype posix-extended -regex '.*/Manuscript[0-9_a-zA-Z]+-compact\.json$'
上使用:
resolve.extensions