1.查找特定字符串

[root@server3 mnt]# cat passwd

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

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

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

rooot

rooooot

Root

ROOOT

roooooot

test

tes0t

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

[root@server3 mnt]# grep -n 'root' passwd

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

2.反向选择

[root@server3 mnt]# grep -nv 'root' passwd

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

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

4:rooot

5:rooooot

6:Root

7:ROOOT

8:roooooot

9:test

10:tes0t

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

3.忽略大小写

[root@server3 mnt]# grep -ni 'root' passwd

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

6:Root

4.利用[]查找特定字符

[root@server3 mnt]# grep -n '[rR]oot' passwd

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

6:Root

5.查找特定的字符串

[root@server3 mnt]# grep -n 'oo' passwd

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

4:rooot

5:rooooot

6:Root

8:roooooot

去掉oo前面的r

[root@server3 mnt]# grep -n '[^r]oo' passwd

4:rooot

5:rooooot

6:Root

8:roooooot

此时会有疑问,为什么‘r’并没有全部被过滤掉呢?因为在4,5,7行之中,oo的前面也可呢个时o,例r(ooo)t。

6.让oo前面不再有小写字符

[root@server3 mnt]# grep -n '[^a-z]oo' passwd

6:Root

也可一以用

[root@server3 mnt]# grep -n '[^[:lower:]]oo' passwd

6:Root

7.过滤出以bin开头的

[root@server3 mnt]# grep -n '^bin' passwd

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

8.过滤出开头是小写字符的行数

[root@server3 mnt]# grep -n '^[a-z]' passwd

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

4:rooot

5:rooooot

8:roooooot

9:test

10:tes0t

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

也可以用这种方式替换

grep -n '^[[:lower:]]' passwd

9.过滤出开头不是英文字母的

[root@server3 mnt]# grep -n '^[^[a-zA-Z]]' passwd

10.找出行尾结束时为小数点(.)的那一行

[root@server3 mnt]# vim passwd       #编辑文件,加几个小数点

[root@server3 mnt]# cat passwd

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

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

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

rooot

rooooot

Root

ROOOT

roooooot.

test

tes0t.

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

[root@server3 mnt]# grep  -n '\.$' passwd

8:roooooot.

10:tes0t.

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

11.找出空白行

[root@server3 mnt]# vim passwd

[root@server3 mnt]# grep -n '^$' passwd

10:

11:

12.找出‘r??t’的字符串

[root@server3 mnt]# grep  -n 'r..t' passwd

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

13.找出至少含有两个oo以上的字符串

[root@server3 mnt]# grep  -n 'ooo*' passwd

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

4:rooot

5:rooooot

6:Root

8:roooooot.

14.找出开头为r,结尾为t,中间至少有一个o的字符串

[root@server3 mnt]# grep  -n 'ro*t'  passwd

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

4:rooot

5:rooooot

8:roooooot.

15.用.和*结合实验

[root@server3 mnt]# grep  -n 'r.*t'  passwd

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

4:rooot

5:rooooot

8:roooooot.

16.找到2-5个o的字符串

[root@server3 mnt]# grep  -n 'ro\{2,5\}t' passwd

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

4:rooot

5:rooooot

17.找到3个o以上的字符串

[root@server3 mnt]# grep -n 'ro\{3,\}' passwd

4:rooot

5:rooooot

8:roooooot.

18.找到自己ip地址的行

[root@server3 mnt]# ip addr | grep -n 'eth0$'

9:    inet 172.25.8.3/24 brd 172.25.8.255 scope global eth0

grep练习的更多相关文章

  1. grep 查找bash脚本中的注释代码

    出于安全性的考虑,不建议在bash脚本中注释掉不使用的代码.也就是说如果某段代码不使用了,那么应该删除掉,而不是简单地注释掉.假如你突然意识到这一点,而以前并没有遵从这个原则,现在需要找出脚本中的注释 ...

  2. linux grep命令

    linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressio ...

  3. linux中grep的应用

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  4. Linux命令-文件文本操作grep

    文件文本操作 grep 在文件中查找符合正则表达式条件的文本行 cut 截取文件中的特定字段 paste 附加字段 tr 字符转换或压缩 sort 调整文本行的顺序,使其符合特定准则 uniq 找出重 ...

  5. 4-4 grep及正则表达式

    1. grep:Globally search a Regular Expression and Print:根据模式搜索文本,并将符合模式的文本行显示出来 pattern:文本字符和正则表达式的元字 ...

  6. grep 命令过滤配置文件中的注释和空行

    grep 用法 Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. ...

  7. sed awk grep三剑客常用

    sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...

  8. awk命令和grep命令的使用

    1.遇到需求:用ping命令去检测系统网络延迟 跑 ping baidu.com -c 3,想要直接得到平均延迟. ping baidu.com -c 3 | grep rtt | awk -F \/ ...

  9. grep 命令

    简单介绍:grep命令是用于分析一行信息,若当中有我们所需要的信息,就将该行取出来. 语法结构:grep [-acinv] [--color=auto] '查找关键字' #{filename} -a: ...

  10. 使用git grep进行git搜索

    1.git grep foo 会自动map所有包含foo的文件 2.git grep -n foo  显示行号 3.git grep --name-only foo 只显示文件名 4.git grep ...

随机推荐

  1. Oracle 更新Opatch、打补丁

    1.更新Opatch; 2.打补丁; 3.grid 打补丁; 1.更新Opatch(实验版本:oracle:11.2.0.3.0): 默认安装数据库后,在ORACLE_HOME 下会有个OPatch ...

  2. CentOS7安装redis,并设置开机自启动

    卸载redis 停止并删除所有已的rendis目录即可. rm -rf /home/wls/soft/redis-4.0.2 rm -rf /etc/redis* rm -rf /var/log/re ...

  3. Hadoop权威指南文摘

    第1章 初识Hadoop 1.1 数据!数据! 1.2 数据的存储与分析 HDFS实现数据的存储,MapReduce实现数据额分析与处理 1.3 相较于其他系统的优势 MapReduce是一个批量查询 ...

  4. 从零开始学习前端JAVASCRIPT — 9、JavaScript基础RegExp(正则表达式)

    1:正则的概念 正则表达式(regular expression)是一个描述字符规则的对象.可以用来检查一个字符串是否含有某个子字符串,将匹配的子字符串做替换或者从某个字符串中取出符合某个条件的子串等 ...

  5. 手机SLAM开发

    ...惯性定位 由简入繁 保留JPG文件. 回环 建模

  6. 编写高质量代码改善C#程序的157个建议——建议152:最少,甚至是不要注释

    建议152:最少,甚至是不要注释 以往,我们在代码中不写上几行注释,就会被认为是钟不负责任的态度.现在,这种观点正在改变.试想,如果我们所有的命名全部采用有意义的单词或词组,注释还有多少存在的价值. ...

  7. ioctlsocket()函数是干什么用的?它返回值是什么?共有几个参数?它的各个参数是干什么用的?

    1. ioctlsocket()  简述:   控制套接口的模式. #include <winsock.h> int PASCAL FAR ioctlsocket( SOCKET s, l ...

  8. 洛谷P4234 最小差值生成树(lct动态维护最小生成树)

    题目描述 给定一个标号为从 11 到 nn 的.有 mm 条边的无向图,求边权最大值与最小值的差值最小的生成树. 输入输出格式 输入格式:   第一行两个数 n, mn,m ,表示图的点和边的数量. ...

  9. 虚拟化技术KVM

    1>虚拟化技术: 计算机虚拟化技术是多种技术的综合实现,它包括硬件平台,操作系统,存储以及网络等,简单地说,虚拟化技术就是在单台主机上可以虚拟多个虚假主机,并可以在这些虚拟主机上运行不同的操作系 ...

  10. cocos2dx conversion to dalvik format failed

    标题的这个问题不知道有没有朋友遇到过,我就被害惨了一个晚上加一个早上的时间了. 可能其他朋友很多搜conversion to dalvik format failed 都会看到一样的答案,我是针对做c ...