码迷,mamicode.com
首页 > 其他好文 > 详细

grep正则表达式使用10例

时间:2017-10-03 15:27:14      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:linux

1、显示/etc/passwd文件中不以/bin/bash结尾的行

[root@localhost~]# grep -v"/bin/bash$" /etc/passwd

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

 

2、找出/etc/passwd文件中的两位数或三位数

[root@localhost~]# grep"\<[0-9]\{2,3\}\>" /etc/passwd

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

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

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

ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin

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

systemd-bus-proxy:x:999:998:systemdBus Proxy:/:/sbin/nologin

 

3、找出/etc/rc.d/rc/rc.sysinit文件中,以至少一个空白字符开头,且后面非空白字符的行

[root@jojohyj-linux~]# grep"^[[:space:]]\+[^[:space:]]" /etc/rc.d/rc.sysinit

    . /etc/sysconfig/network

    HOSTNAME=localhost

        mount -n -t proc /proc /proc

        mount -n -t sysfs /sys /sys>/dev/null 2>&1

 

4、找出 netstat -tan 命令的结果以 “LISTEN” 后跟0、1或多个空白字符结尾的行

[root@jojohyj-linux~]# netstat -tan|grep"LISTEN[[:space:]]*$"

tcp    0    0  0.0.0.0:22             0.0.0.0:*                   LISTEN     

tcp    0  0  :::22                    :::*                        LISTEN     

 

5、找出/proc/meminfo文件中,所有在大写或小写s开头的行,用3种方式

[root@localhost~]# grep ^[sS] /proc/meminfo

SwapCached:            0 kB

SwapTotal:       2097148 kB

SwapFree:        2097148 kB

[root@localhost~]# grep -E "^(s|S)"/proc/meminfo

SwapCached:            0 kB

SwapTotal:       2097148 kB

SwapFree:        2097148 kB

[root@localhost~]# grep -E "^s|^S"/proc/meminfo

SwapCached:            0 kB

SwapTotal:       2097148 kB

SwapFree:        2097148 kB

6、显示当前系统上root、centos、或user1用户的相关信息

[root@localhost ~]# grep -E "^(root|centos|user1)\>" /etc/passwd

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

centos:x:1003:1005::/home/centos:/bin/bash

user1:x:1004:1006::/home/user1:/bin/bash

 

7、找出/etc/rc.d/init.d/functions文件中某单词后面跟一个小括号的行

[root@localhost~]# grep -E"[[:alpha:]]+\(\)" /etc/rc.d/init.d/functions

checkpid() {

__kill_pids_term_kill_checkpids(){

__kill_pids_term_kill(){

 

8、使用echo命令输出一绝对路径,取出基名

[root@localhost~]# echo"/etc/rc.d/init.d/functions"|grep -oE "[^/]+$"

functions

 

9、找出ifconfig命令结果中1-255之间的数值

[root@localhost~]# ifconfig|grep -oE"\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"

192

168

168

130

255

255

255

 

10、添加用户bash、testbash、basher以及nologin(其shell为/sbin/nologin);然后找出/etc/passwd文件中用户名和shell名一样的行

[root@localhost~]# cat /etc/passwd|grep -E"^(.*):.*/\1$" 

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

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

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

bash:x:1005:1007::/home/bash:/bin/bash

nologin:x:1008:1010::/home/nologin:/sbin/nologin

法2:

[root@localhost~]# cat /etc/passwd|grep -E"^([^:]+\>).*\1$"

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

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

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

bash:x:1005:1007::/home/bash:/bin/bash

nologin:x:1008:1010::/home/nologin:/sbin/nologin

 

 

 

 


grep正则表达式使用10例

标签:linux

原文地址:http://jojohyj.blog.51cto.com/11654339/1970288

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!