正则表达式与inotifywait在golang中编译两种类型的文件

I use a script to auto-compile in golang with inotifywait. But this script only checks files with the extension .go. I want to also add the .tmpl extension but the script uses regular expressions. What kind of changes I have to make to this line to get the desired result?

inotifywait -q -m -r -e close_write -e moved_to --exclude '[^g][^o]$' $1

I've tried to concatenate with | or & and other things like ([^t][^m][^p][^l]|[^g][^o])$ but nothing seems to work.

duanshan1856
duanshan1856 相关内容:stackoverflow.com/q/7943528/2088135(实际上,来自那里的评论正是我基于我的答案得出的)。
4 年多之前 回复
doukongpao0903
doukongpao0903 我没有用0,错误是我在这里写的
4 年多之前 回复
douchuoliu4422
douchuoliu4422 您似乎在([^t][^m][^s][^l]|[^g][^0])$(以及s而不是p)中使用了零而不是o。
4 年多之前 回复
doutao6653
doutao6653 正是我所需要的。尝试以下列表(宽度/gm):.go.og.ao.ga.got.ext.propertiesmain.a
4 年多之前 回复
douqian7634
douqian7634 .ao和.ga不匹配。如果那是您的需要,那么确定。
4 年多之前 回复
dongzhenjian5195
dongzhenjian5195 我已经在regex101.com中尝试过,并且有效
4 年多之前 回复
drti52047
drti52047 以上与file.ao或file.ga一起使用吗?我对此表示怀疑。
4 年多之前 回复

1个回答



不是尝试使用正则表达式来排除两种类型的文件,而是为什么不只观看那些文件?</ p >

  inotifywait -q -m -r -e close_write -e move_to / path / ** / 。{go,tmpl} 
</ code> </ pre>
\ n

要使用 *

</ code>(进行递归匹配),您可能必须启用bash的globstar:</ p>

  shopt -s globstar

</ code> </ pre>
</ div>

展开原文

原文

Rather than trying to use a regex to exclude two types of file, why don't you just only watch those files?

inotifywait -q -m -r -e close_write -e moved_to /path/**/*.{go,tmpl}

To use the ** (which does a recursive match), you may have to enable bash's globstar:

shopt -s globstar

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问