Linux grep命令使用大全

grep是一种使用正则表达式的多用途文本搜索工具(global search regular expression(RE) and print out the line)
主要参数:
-c:仅仅输出匹配行的计数。
-I:不区分大 小写(仅仅适用于单字符)。
-h:查询多文件时不显示文件名称。
-l:查询多文件时仅仅输出包括匹配字符的文件名称。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包括匹配文本的全部行。
grep 'test' testfile.txt # 从文件中查找匹配'test'的的内容,如可为'testaa','atest'乖乖
ls | grep -i 'test' #忽略大小写进行匹配
grep -w 'test' testfile.txt # 匹配整个单词,如'testaa'不列出
grep -n 'test' testfile.txt # 显示行号进行匹配
grep -v 'test' testfile.txt # 将没有出现'test'的行取出来

grep -A3 'testa' testfile.txt # 在匹配行打印完毕后再打印3行
grep -B5 'testa' testfile.txt # 在匹配行前打印5行
grep -C8 'testa' testfile.txt # 在前后各自打印8行

grep 'test' *         # 在当前目录搜索带'test'行的文件
grep -r 'test' *      # 在当前目录及其子目录下搜索'test'行的文件
grep -l -r 'test' *   # 在当前目录及其子目录下搜索'test'行的文件,但是不显示匹配的行,只显示匹配的文件
grep -c "*baidu.com*" test.txt # 统计匹配行数
grep --color "test" test.txt # 加上着色
30 black
31 red
32 green
33 yellow
34 blue
35 purple
36 cyan
37 white

自定义颜色:
GREP_COLOR=32
 # 以下是 grep 与正则表达式的结合
 grep -n 't[ae]st' test.txt
 grep -n '[^g]oo' test.txt # 搜索到有 oo 的行,但不想要 oo 前面有 g,并显示行号
 grep -n '[^a-z]oo' test.txt # 搜索到有 oo 的行,但不想要 oo 前面有小写字母
 grep -n '[0-9]' test.txt # 取得有数字的行
 grep -n '^the' test.txt # 搜索出以'the'开头的行
 grep -n '^[a-z]' test.txt # 搜索出以小写字母开头的行
 grep -n '^[^a-zA-Z]' test.txt # 搜索出不是字母开头的行
 grep -n '\.$' test.txt # 行尾结束为小数点 (.) 的行
 grep -n '^$' test.txt # 找出空白行
 grep -n 'g..d' test.tx # 找出包含'g??d'字串行
 grep -n 'ooo*' test.txt
 grep -n 'goo*g' test.txt

 grep -n 'o\{2\}' test.txt # 搜索出含有2个'o'的行
 grep -n 'go\{2,5\}g' test.txt # 找出 g 后面接 2 到 5 个 o ,然后再接一个 g 的字串

另外参考:egrep

ls | grep -E "file1|file2" # -E 选项可使用多个文件
ls | egrep "file1|file2"

你可能感兴趣的:(Linux)