linux命令学习(9)-grep

 
【命令名称】 grep      
【使用权限】 所有人
【功能说明】 撷取命令之一,与cut不同地方就是,若是行中包含
【命令语法】 grep –[acniv] ‘搜寻字符’ filename
【常用参数】
           -i   忽略大小写
           -n   显示行号
           -v    取反
           -c   计算搜寻字符的次数
           -E   多个字符串一起搜寻,就是后面计的egrep
 
特殊符号
代表意义
[:alnum:]
代表英文大小写字元及数字,亦即 0-9, A-Z, a-z
[:alpha:]
代表任何英文大小写字元,亦即 A-Z, a-z
[:blank:]
代表空白键与 [Tab] 按键两者
[:cntrl:]
代表键盘上面的控制按键,亦即包括 CR, LF, Tab, Del.. 等等
[:digit:]
代表数字而已,亦即 0-9
[:graph:]
除了空白字元 (空白键与 [Tab] 按键) 外的其他所有按键
[:lower:]
代表小写字元,亦即 a-z
[:print:]
代表任何可以被列印出来的字元
[:punct:]
代表标点符号 (punctuation symbol),亦即:" ' ? ! ; : # $...
[:upper:]
代表大写字元,亦即 A-Z
[:space:]
任何会产生空白的字元,包括空白键 , [Tab], CR 等等
[:xdigit:]
代表 16 进位的数字类型,因此包括: 0-9, A-F, a-f 的数字与字元
【命令实例】
 1 取出passwd文档中含有root字符的行
[cxc@cxcserver etc]$ grep 'root' /etc/passwd       。
rootx00root/root/bin/bash
operatorx110operator/root/sbin/nologin 
 2 加了-v 就是取出不含的行
[cxc@cxcserver test3]$ grep -v '#' /etc/manconfig
FHS
VGRIND
…………省略………………
COMPRESS_EXT    bz2
MANSECT         1:1p:8:2:3:3p:4:5:6:7:9:0p:n:l:p:o:1x:2x:3x:4x:5x:6x:7x:8x
[cxc@cxcserver test3]$
3 取特殊字符
[cxc@localhost ~]$ echo "\"boy\"" >>cxctxt
[cxc@localhost ~]$ cat cxctxt
I am student
"boy"
[cxc@localhost ~]$ grep " cxctxt
[cxc@localhost ~]$ grep \" cxctxt
"boy"
【扩展】正则表达式学习
1.搜寻特定的字符  
 grep ‘the’ /etc/manconfig                  寻找含有the那行
2.利用[]来寻找字符集合
 grep ‘t[ae]st’ /etc/manconfig              寻找的字符串分别为tast,test
3.行首字符^
 grep   ‘^the’ /etc/manconfig              寻找the开头的行
4.行尾字符$        
 grep    ‘$’ /etc/manconfig                寻找结尾的行
5.任意字符.和重复字符*
.代表一定有一个字符存在。 *代表0个或者任意个字符。举例如下
 寻找g和d之间有任意两个字符的行
 grep   ‘g..d’ /etc/manconfig        
 寻找0个或者多个
 grep    ‘ooo*’ /etc/manconfig        
 寻找g和d之间有0到无数个的字符的行
 grep    ‘g.*d’ /etc/manconfig        
6.限定连接字符范围{}
{}在shell中有特殊含义,故在他们前面需要加上转义字符。
 grep   ‘o\{3\}’ /etc/manconfig     寻找连接三个o的行
 grep    ‘o\{3,7\}’ /etc/manconfig    寻找连接三个o到7个o的行
 grep    ‘o\{3,\}’ /etc/manconfig    寻找连接三个o以上的行
 

你可能感兴趣的:(linux,linux命令,linux系统)