linux grep搜索命令的使用方法

2020-01-30 11:14:21王振洲

下面还有一些有意思的命令行参数:
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

grep -n pattern files  即可显示行号信息

grep -c pattern files  即可查找总行数

这里还有些用于搜索的特殊符号:
< 和 > 分别标注单词的开始与结尾。
例如:
grep man * 会匹配 ‘Batman’、’manic’、’man’等,
grep ‘<man’ * 匹配’manic’和’man’,但不是’Batman’,
grep ‘<man>’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。
‘^’:指匹配的字符串在行首,
‘$’:指匹配的字符串在行 尾,

Grep 命令 用法大全

1、 参数:
-I :忽略大小写
-c :打印匹配的行数
-l :从多个文件中查找包含匹配项
-v :查找不包含匹配项的行
-n:打印包含匹配项的行和行标

2、RE(正则表达式)
忽略正则表达式中特殊字符的原有含义
^ 匹配正则表达式的开始行
$ 匹配正则表达式的结束行
< 从匹配正则表达式的行开始
> 到匹配正则表达式的行结束
[ ] 单个字符;如[A] 即A符合要求
[ - ] 范围 ;如[A-Z]即A,B,C一直到Z都符合要求
. 所有的单个字符
* 所有字符,长度可以为0

 3、举例
# ps -ef | grep in.telnetd
 root 19955 181 0 13:43:53 ? 0:00 in.telnetd

 # more size.txt size文件的内容
b124230
 b034325
 a081016
 m7187998
 m7282064
 a022021
 a061048
 m9324822
 b103303
 a013386
 b044525
 m8987131
 B081016
 M45678
 B103303
 BADc2345

 # more size.txt | grep '[a-b]' 范围 ;如[A-Z]即A,B,C一直到Z都符合要求
b124230
 b034325
 a081016
 a022021
 a061048
 b103303
 a013386
 b044525
 # more size.txt | grep '[a-b]'*
 b124230
 b034325
 a081016
 m7187998
 m7282064
 a022021
 a061048
 m9324822
 b103303