博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
grep
阅读量:6411 次
发布时间:2019-06-23

本文共 9623 字,大约阅读时间需要 32 分钟。

grep

[root@abinlinux ~]# grep 'root' /etc/passwd    匹配root的行

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

[root@abinlinux ~]# grep --color 'root' /etc/passwd       --color 是颜色  用颜色来显示

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

[root@abinlinux ~]# grep --color -n 'root' /etc/passwd     在那一行中出现 显示在那一行 -n

1:root:x:0:0:root:/root:/bin/bash

11:operator:x:11:0:operator:/root:/sbin/nologin

[root@abinlinux ~]# alias ing='grep --color'   自定义别名

[root@abinlinux ~]# vim .bashrc    放到这个配置文件中去

[1]+  Stopped                 vim .bashrc

[root@abinlinux ~]# fg

vim .bashrc

[root@abinlinux ~]# ing -c 'root' 1.txt     -c出现了多少行     1.txt是/etc/passwd  复制过去的

2

[root@abinlinux ~]# grep --color -v 'root' 1.txt        -v取反不包括root的行

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

[root@abinlinux ~]# ing -n -A 2 'root' 1.txt    把root 匹配出来 还要多显示两行    -A

1:root:x:0:0:root:/root:/bin/bash

2-bin:x:1:1:bin:/bin:/sbin/nologin

3-daemon:x:2:2:daemon:/sbin:/sbin/nologin

--

11:operator:x:11:0:operator:/root:/sbin/nologin

12-games:x:12:100:games:/usr/games:/sbin/nologin

13-gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

[root@abinlinux ~]# ing -n -B 2 'games' 1.txt       会往上多显示两行   -B

10-uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

11-operator:x:11:0:operator:/root:/sbin/nologin

12:games:x:12:100:games:/usr/games:/sbin/nologin

[root@abinlinux ~]# ing -n -C  2 'games' 1.txt     上下两行都显示

10-uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

11-operator:x:11:0:operator:/root:/sbin/nologin

12:games:x:12:100:games:/usr/games:/sbin/nologin

13-gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

14-ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

[root@abinlinux ~]# ing -r 'iptables' /etc/*          -r匹配那个文件

/etc/init.d/iptables:# iptables Start iptables firewall

[root@abinlinux ~]# ing -rh 'iptables' /etc/*       不想显示前面的文件  可以加个h

# iptables      Start iptables firewall

# description:  Starts, stops and saves iptables firewall

[root@binbinlinux ~]# ing -n 'yunjie' 1.txt       过滤出 yunjie并带有 行号  -n  表示

25:yunjie:x:502:502::/home/yunjie:/bin/bash

[root@binbinlinux ~]# ing -v 'nologin' 1.txt      过滤出不带有 nologin     -v  表示  

root:x:0:0:root:/root:/bin/bash

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

abin:x:500:500::/home/abin:/bin/bash

[root@binbinlinux ~]# ing '[0-9]' 1.txt      中括号 [0-9]表示不管是几位 都能列出来

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@binbinlinux ~]# ing '[cN]' 1.txt        取中括号[cN] 表示  列举出来  

sync:x:5:0:sync:/sbin:/bin/sync

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

[root@binbinlinux ~]# ing '[a-zA-Z]' 1.txt   正则表达式  [a-zA-Z] 列举出来

nobody:x:99:99:Nobody:/:/sbin/nologin

user2:x:507:503::/home/user2:/bin/bash

user3:x:508:503::/home/user3:/bin/bash

rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin

[root@binbinlinux ~]# ing -v '[a-zA-Z]' 1.txt     -v取反  不包含这些的 就没有  

[root@binbinlinux ~]# vi 1.txt                              vim有个缓存文件

[root@binbinlinux ~]# ls -l .1.txt.swp                   查看   swp

-rw-r--r-- 1 root root 16384 9月   8 17:57 .1.txt.swp

[root@binbinlinux ~]# rm -f .1.txt.swp                删除缓存文件

              vi  1.txt   加入纯数字  纯字符  和空行  

[root@binbinlinux ~]# ing -v '[a-zA-Z]' 1.txt      可以把特殊字符行 和纯数字行  和空行列举出来

%#%$#%$#^%&^%&^**&^(&^(&^&(}{}{}}}}]]]][]][][][]

2222222222222222222222222222222222222222222222222222222

[root@binbinlinux ~]# ing '^[a-z]' 1.txt           ^匹配以字母开头的行   1

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@binbinlinux ~]# ing '^[0-9]' 1.txt              ^匹配 以数字开头的行

2222222222222222222222222222222222222222222222222222222

[root@binbinlinux ~]# ing  '[^0-9]' 1.txt             ^放到中括号里面就是非数字的行

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin  

[root@binbinlinux ~]# ing '^[^0-9]' 1.txt             ^放前面就是不以数字开头的行  

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

%#%$#%$#^%&^%&^**&^(&^(&^&(}{}{}}}}]]]][]][][][]          特殊字符也是匹配到的

[root@binbinlinux ~]# ing '^$' 1.txt                 ^开头 $结尾  这样就把空行表示出来

[root@binbinlinux ~]# ing -v '^$' 1.txt             空行之外的表示出来

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

[root@binbinlinux ~]# ing 'r.o' 1.txt                  匹配到roo   .表示任意的字符  空格也可以

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

[root@binbinlinux ~]# ing 'r.o' 1.txt                编辑 1.txt 加入字符 能匹配

root:x:0:0:root:/root:/bin/bash

uucp:x:10:14:uucp:/var/spor_ol/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/gamer*os:/sbin/nologin

vcsa:x:69:69:virtual cr.onsole memory ownoer:/dev:/sbin/nologin

[root@binbinlinux ~]# ing 'r*o' 1.txt               匹配结果  oo匹配两次  rrr 要以o;结尾

shutdrwn:x:6:0:shutdown:/sbin:/sbin/shutdown

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

operrrrrrrrrrrrrrrroator:x:11:0:operator:/root:/sbin/nologinii

* 0个或多个 *号前面的这个字符      

[root@binbinlinux ~]# ing 'r.*o' 1.txt    .是任意个字符 *是前面的字符或者是多个

root:x:0:0:root:/root:/bin/bash     r开头o结尾的列出来  

bin:xrrrr:1:1:bin:/bin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

shutdrwn:x:6:0:shutdown:/sbin:/sbin/shutdown

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

.* 叫做贪婪匹配

[root@binbinlinux ~]# ing 'r?o' 1.txt            没有结果

[root@binbinlinux ~]# ing 'r\?o' 1.txt          加上\表示 0或一个前面的字符    

root:x:0:0:root:/root:/bin/bash

bin:xrrrr:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

shutdrwn:x:6:0:shutdown:/sbin:/sbin/shutdown

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

[root@binbinlinux ~]# ing -E 'r?o' 1.txt          -E等于加\    一个意思

root:x:0:0:root:/root:/bin/bash

bin:xrrrr:1:1:bin:/bin:/sbin/nloogin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin            grep -E == egrep    

[root@binbinlinux ~]# egrep --color 'r?o' 1.txt     和 grep --color ‘r\?o'  1.txt   一个意思

root:x:0:0:root:/root:/bin/bash

bin:xrrrr:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin     ?号是个特殊字符要使用\符号或者egrep -E

[root@binbinlinux ~]# egrep --color 'r+o' 1.txt      +号表示一个或多个前面的字符

root:x:0:0:root:/root:/bin/bash

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

operrrrrrrrrrrrrrrroator:x:11:0:operator:/root:/sbin/nologinii

[root@binbinlinux ~]# ing -E 'r+o' 1.txt           grep -E 也可以

root:x:0:0:root:/root:/bin/bash

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

operrrrrrrrrrrrrrrroator:x:11:0:operator:/root:/sbin/nologinii

[root@binbinlinux ~]# ing 'r\+o' 1.txt      或者 加号\一下  去掉-E

root:x:0:0:root:/root:/bin/bash

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

operrrrrrrrrrrrrrrroator:x:11:0:operator:/root:/sbin/nologini

.任意一个字符(包括空格下划线特殊符号) ; *零个或多个*前面的字符;.*任意个任意个字符 贪婪匹配;?0或一个?前面的字符;+1个或多个+前面的字符  

? + 使用grep -E   grep ‘r\+o ’ 1.txt  要脱义    egrep  直接可以使用

[root@binbinlinux ~]# egrep --color 'root|nologin' 1.txt   并且或者

root:x:0:0:root:/root:/bin/bash

bin:xrrrr:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@binbinlinux ~]# grep --color 'root' 1.txt   匹配一次  

root:x:0:0:root:/root:/bin/bash

operrrrrrrrrrrrrrrroator:x:11:0:operator:/root:/sbin/nologinii

[root@binbinlinux ~]# grep --color 'root' 1.txt |grep --color 'nologin'  或者的表达方法  

operrrrrrrrrrrrrrrroator:x:11:0:operator:/root:/sbin/nologinii

[root@abinlinux ~]# egrep --color 'root|nologin' 1.txt       egrep 或者的使用方法  

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

[root@abinlinux ~]# grep --color 'root' 1.txt      grep要分两次表达

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

[root@abinlinux ~]# grep --color 'root' 1.txt |grep --color 'nologin'   表达两次

operator:x:11:0:operator:/root:/sbin/nologin

[root@binbinlinux ~]# egrep --color '(rr)+' 1.txt      +号前面的多个成双的r

bin:xrrrr:1:1:bin:/bin:/sbin/nologin

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

operrrrrrrrrrrrrrrroator:x:11:0:operator:/root:/sbin/nologinii

[root@binbinlinux ~]# grep -E  --color '(rr)+' 1.txt        grep -E才可以使用  

bin:xrrrr:1:1:bin:/bin:/sbin/nologin

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

operrrrrrrrrrrrrrrroator:x:11:0:operator:/root:/sbin/nologinii

[root@binbinlinux ~]# grep -E  --color '(rr){1,3}' 1.txt      匹配一个范围  1-3个  

bin:xrrrr:1:1:bin:/bin:/sbin/nologin

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

operrrrrrrrrrrrrrrroator:x:11:0:operator:/root:/sbin/nologinii

[root@binbinlinux ~]# grep -E  --color '(rr){5}' 1.txt          范围5

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

operrrrrrrrrrrrrrrroator:x:11:0:operator:/root:/sbin/nologinii

[root@binbinlinux ~]# grep -E  --color '(rr){5,8}' 1.txt        

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

operrrrrrrrrrrrrrrroator:x:11:0:operator:/root:/sbin/nologinii

[root@binbinlinux ~]# grep -E  --color '(rr){10}' 1.txt

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

{}  指定它的次数的    

[root@binbinlinux ~]# grep --color '\(rr\)\{10\}' 1.txt     使用grep 不用-E 使用\符号  

uucp:x:10:14:uucp:/varrrrrrrrrrrrrrrrrrrrro/spor_ol/uucp:/sbin/nologin

+ ? () {}   |      要使用egrep     或者grep -E    或者是 \符号  

本文转自 amenging 51CTO博客,原文链接:http://blog.51cto.com/11335852/1983661

转载地址:http://cvkra.baihongyu.com/

你可能感兴趣的文章
Jmeter(十)断言
查看>>
bugly中批量隐藏版本
查看>>
喜马拉雅FM
查看>>
Hadoop和MapReduce初识
查看>>
istio sidecar自动注入过程分析
查看>>
caffe 画loss曲线
查看>>
innodb系统表空间维护
查看>>
从头开始写框架(二):孕育框架的种子_下
查看>>
4-数据类型(2)
查看>>
百度图片爬虫
查看>>
cocos2dx 3.2之Lua打飞机项目
查看>>
JAVA- JDBC之DBHelper
查看>>
AQS同步组件及ReentrantLock和synchronized的区别
查看>>
bzoj1901: Zju2112 Dynamic Rankings 主席树+树状数组
查看>>
jeewx的使用_01 接入和验证
查看>>
java.net.BindException: Address already in use:80 linux
查看>>
用javascript向一个网页连接接口发送请求,并接收该接口返回的json串
查看>>
PHP语言 -- Smarty缓存
查看>>
谈谈JavaScript中function多重理解
查看>>
窗口置顶 - 仿TopWind
查看>>