我以为这能起作用:
find src -type f -regextype egrep -regex '.*(?<!\.d)\.ts'但它似乎和任何东西都不匹配。
我认为那应该能工作,但是我想这种"egrep“风格不支持负面的反向引用,除非我没有正确地逃避一些事情。
作为参考,
% find src -type f
src/code-frame.d.ts # <-- I want to filter this out
src/foo.ts
src/index.ts还有另一种快速的方法从我的搜索结果中筛选出.d.ts文件吗?
% find --version
find (GNU findutils) 4.7.0-git发布于 2019-12-18 09:12:30
我不认为egrep支持这种语法(您的表达式是与Perl兼容的正则表达式)。但是您不需要在示例中使用正则表达式,只需进行多个-name测试并酌情应用!否定:
find src -type f -name '*.ts' ! -name '*.d.ts'发布于 2019-12-18 09:10:17
只对文件名进行过滤,对不想要的文件取消测试,就可以得到所需的结果:
find src -type f -name \*.ts ! -name \*.d.ts发布于 2019-12-18 20:32:37
一种简单的(可能效率较低)方法可以过滤掉不想要的字符串。
find -name "*.ts" | egrep -v "\.d\.ts$"https://unix.stackexchange.com/questions/557822
复制相似问题