Pet*_*ill 14 macos watch fswatch
我正在使用fswatch并且只想在具有扩展名的文件.xxx被修改/创建等时触发它.文档和下面的第二个参考表明:
问题:用于排除与扩展名不匹配的所有文件的正则表达式是什么.xxx?
Enr*_*omo 38
我是fswatch作家.它可能不是非常直观,但fswatch包括所有内容,除非排除过滤器另有说明.出现问题:您希望包含具有给定扩展名的所有文件.在排除和包含过滤器方面的改述:
ext.那是:
要排除所有内容,您可以添加与任何字符串匹配的排除过滤器:.*.
要包含与特定扩展名的文件ext,添加一个包含过滤器匹配结尾的任何路径.ext:\\.ext$.在这种情况下,您需要转义点.以匹配文字点,然后是扩展名ext,然后匹配路径的末尾$.
最后的命令是:
$ fswatch [options] -e ".*" -i "\\.ext$"
Run Code Online (Sandbox Code Playgroud)
如果你想不区分大小写的过滤器(如匹配eXt,Ext等等),只需添加-I选项.
您可以观察单个扩展名的文件的更改,如下所示:
fswatch -e ".*" -i ".*/[^.]*\\.xxx$" .
Run Code Online (Sandbox Code Playgroud)
这将排除所有文件,然后包括以 结尾的所有路径.xxx(并且还排除以点开头的文件)。
如果您想对文件更改运行命令,您可以添加以下内容:
fswatch -e ".*" -i ".*/[^.]*\\.xxx$" -0 . | xargs -0 -n 1 -I {} echo "File {} changed"
Run Code Online (Sandbox Code Playgroud)