grep 技巧
some word in a certain kind of files
我们经常使用grep来查找某个字符串。但是当文件太多,或者我们知道在某个类型文件中查找时,就觉得现在的方法太慢。
grep "some_string" `find some_folder -name "*.some_extension"`
例如
grep "printf" `find ./ -maxdepth 1 -name "*.c"`
搜索当前目录下(不递归)c源文件中包含printf的地方。
或者还有一个写法
grep -r --include="*.c" "some_string" *
也可以只在.c文件中搜索 some_string
Search an exact word
有时候我们要找一个单词,但是经常会发现找出来的东西不仅是这个单词,还有以这个为部分的词语
如,找the,但是发现there,other等都会找到
那就用这招
grep "/<the/>" *
就可以只找出the这个单词了。
Search a special character
grep的正则表达式有些特殊字符如. *等,在搜索时需要特殊处理。就要加上/表示这是个普通字符。
比如想要搜索.,则用
grep "/<the/." *
或者
grep "/<the[.]" *
Just list files
有的时候我们只想知道有哪些文件包含了特殊字符,而不是打印出所有匹配的行。
ok,那就用-l选项
grep -l "/<the/." *
就会列出包含 the.的文件名称。