轉載自:http://hittyt.CUOxin.com/blog/1681500
今天有個需求:需要查找在某個工程下面的所有js文件和vm文件中是否包含某個特定的關鍵字$a。
自己最直觀的想法,使用find實現。
find . -name "*.js" -or -name "*.vm" | xargs grep "/b$a/b"這里很容易在-or參數后面忘記再寫一次-name參數,我開始就是忘記了,導致語法就有問題,linux不認!
后來請教一位同事時,人家給出了直接grep的解法,相當不錯,記錄一下:
grep "/b$a/b" --include=/*.{js,vm} -r .這里,–include參數表明需要grep哪類文件,-r表示遞歸搜索特定的文件夾,千萬別忘記最后的那個“點”,用于表明在當前文件夾下搜索。
另外,還有個需求,要做多少關鍵字被匹配到的記錄。其實本質上是需要個shell下的計數器。 不過這個小語法有被我寫錯了,必須記錄一下了,汗。 因為使用的是bash,所以直接使用((i++))做自增最方便了。不過這里的注意,自增變量i在(())雙括號中是不用使用變量引用的$符號的,這個被我忽略的地方,也就錯在這里了。。。 所以正確的寫法類似于下面這樣的:
i=0 #in for loop under some condition ((i++))新聞熱點
疑難解答