grep
1.作用
grep命令是Linux中一个强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本。
2.格式
grep [options]
3.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
<:从匹配正则表达 式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
4.grep命令使用简单实例
$ grep ‘test’ d*
显示所有以d开头的文件中包含 test的行。
[root@localhost Desktop]# grep 'test' d*
desk1:this is a test
desk1:test is woderful
$ grep ‘test’ desk1,desk2,desk3
显示在desk1,desk2,desk3文件中匹配is的行。
[root@localhost Desktop]# grep 'test' desk1 desk2 desk3
desk1:this is a test
desk1:test is woderful
$ grep [xyz] desk1
显示所有包含xyz字符串的行。
[root@localhost Desktop]# grep [xyz] desk1
abcdefghigklmnopqrstuvwxyz
grep java进程
[root@localhost Desktop]# ps -ef|grep java
root 43433 14703 0 16:34 pts/0 00:00:00 grep --color=auto java
找出/etc/passwd以root开头的行
[root@localhost Desktop]# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
忽略大小写
[root@localhost Desktop]# grep -i ssh /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
查找不包含is的行
[root@localhost Desktop]# grep -v is desk1
abcdefghigklmnopqrstuvwxyz