旷世的忧伤

Huoty's Blog

Linux 下 grep 命令常用方法简介

1、从单个文件中搜索指定的字符串

$ grep “literal-string” filename

该命令会输出字符串在文件中所在行的内容,如果字符串没有空格,则可以不加双引号。filename 可以是多个文件,每个文件用空格隔开。

-i 参数可以忽略大小写。加 -u 参数搜索一个单词而不是搜索含该单词的字符串

2、显示匹配行附近的多行

  • -A 显示匹配行之后的 n 行

$ grep -A n “string” filename

  • -B 显示匹配行之前的 n 行

$ grep -B n “string” filename

  • -C 显示匹配行前后的 n 行

$ grep -C n “string” filename

3、递归搜索:-r

$ grep -r “this” *

搜索当前目录以及子目录下含“this”的全部文件。

4、不匹配搜索:-v

$ grep -v “go” demo_text

显示不含搜索字符串“go”的行。

5、统计匹配的行数:-c

$ grep -c “go” filename

统计文件中含 “go” 字符串的行数。

6、只显示含字符串的文件的文件名:-l

$ grep -l “this” filename

显示含 “this” 字符串的文件的文件名。

7、输出时显示行号

grep -n “this” filename

显示含文件中含 “this” 字符串的行的行号。

8、与 tail 连用,实时过略日志

tail -f file grep –line-buffered

--line-buffered 表示使用行缓冲,而不是默认的块缓冲。

Top