linux grep命令技巧

HUA
HUA
2018-05-27 / 0 评论 / 1,602 阅读 / 正在检测是否收录...

linux grep 是一个基于行对文本和内容匹配和搜索的命令。Grep命令语法和常见的option如下:

用法: grep [选项]... PATTERN [FILE]...
在每个 FILE 或是标准输入中查找 PATTERN。
默认的 PATTERN 是一个基本正则表达式(缩写为 BRE)。
例如: grep -i 'hello world' menu.h main.c

--color:对匹配的字符串着色打印
-o:只显示被模式匹配到的内容
-c:打印出匹配到字符串的行数
-i:ignore case,不区分字符大小写
-v:显示不能够被模式匹配到的行
-E:使用扩展的正则表达式
-n:打印出匹配字符串的在文件中的行号
-R, -r:递归所有文件夹中的每一个文件
-f:从 FILE 中取得 PATTERN
-m: NUM 次匹配后停止
-l:打印出含有匹配字符串的文件名,而不是匹配的内容
-L:打印出没有包含匹配字符串的文件名,与 -l 选项相反
-H:对每个匹配的字符串打印出字符串所在的文件名
-h:不打印匹配字符串所在文件的文件名
-w:强制 PATTERN 仅完全匹配字词
-x:强制 PATTERN 仅完全匹配一行
-A N:打印匹配字符串的同时打印匹配字符串所有行的前 N 行
-B N:打印匹配字符串的同时打印匹配字符串所在行的后 N 行
-C N:打印匹配字符串的同时打印匹配字符串所在行的前 N 行 和 后 N 行
--exclude=GLOB:跳过 GLOB 匹配的文件名进行搜索
--exclude-dir=DIR:在递归搜索时跳过 DIR 指定的文件夹

Grep常见用法:

(1)对当前目录下文件进行递归搜索并只显示文件名

grep "redis" . -r -l

(2)搜索指定字符串并显示行号

cat /etc/passwd | grep -in "Mysql"

(3)从指定文件中读取关键词进行搜索

root@mckee-pc:~# cat test.txt 
linux
peida.cnblogs.com
ubuntu
ubuntu linux
redhat
Redhat
linuxmint
root@mckee-pc:~# cat test2.txt 
linux
Redhat
root@mckee-pc:~# cat test.txt | grep -f test2.txt 
linux
ubuntu linux
Redhat
linuxmint

(4)匹配以"at"结尾的内容行

cat test.txt | grep -E "at$"

(5)仅匹配单词,并显示匹配行数

grep -w -c "usr" /etc/passw
0

评论 (0)

取消