grep: Global search REgular expression and Print out the line

作用: 文本搜索工具,根据用户指定的模式对目标文本逐行进行匹配检查,打印匹配到的行

模式: 由 正则表达式字符及文本字符所编写的过滤条件

正则表达式内容可参考博文:https://www.cnblogs.com/ckh2014/p/10758769.html

grep [OPTIONS] PATTERN [FILE...]
选项:
--color=auto: 对匹配到的文本着色显示
-v : 显示不能够被pattern匹配到的行
-i : 忽略字符大小写
-o : 仅显示匹配到的单词
-q: 静默模式,不输出任何消息
-A # :after, 后#行
-B # :before,前#行
-C # : context, 前后各#行
-E ; 使用扩展的正则表达式 grep练习:
1. 显示/proc/meminfo 文件中以大小写s开头的行:(要求: 使用两种方式)
# grep "^[sS]" /proc/meninfo
# grep -i "^s" /proc/meminfo 2. 显示/etc/passwd文件中不以/bin/bash结尾的行
# grep -v "/bin/bash$" /etc/passwd 3. 显示/etc/passwd 文件中ID号最大的用户的用户名
# sort -t: -k 3 -n /etc/passwd | tail -1 | cut -d: -f1 4.如果用户root存在,显示其默认的shell程序
# grep "^root\>" /etc/passwd &> /dev/null | cut -d: -f7
# id root &> /dev/null && grep "^root\>" /etc/passwd | cut -d: -f7 5. 找出/etc/passwd中的两位或三位数
# grep -o "\<[0-9]\{2,3\}\>" /etc/passwd 6.显示/etc/rc.d/rc.sysinit文件中,至少以一个空白字符开头的且后面存在非空白字符的行
# grep "^[[:space:]].*[^[:space:]].*"
# grep "^\([[:space:]]\).*[^\1].*"
# grep "^[[:space:]]"\+[^[:space:]] 7.找出netstat -tan 命令的结果中以 LISTEN 后跟0、1或多个空白字符结尾的行
# netstat -tan | grep "LISTEN[[:SPACE:]]*$" 8.添加用户bash、testbash、basher以及nologin(其shell为/sbin/nologin):而后找出/etc/passwd文件中用户名同shell名的行
# useradd -s /sbin/nologin nologin
# useradd bash
# grep "^\([[:alnum:]]\+\>\).*\1$" /etc/passwd 9. 写一个脚本,实现如下功能
如果user1用户存在,就显示其存在,否则添加之
显示添加的用户的id号等信息
#!/bin/bash
id user1 &> /dev/null && echo "user1已存在" || useradd user1
id user1 10. 写一个脚本,完成如下功能
如果root用户登录了当前系统,就显示root用户在线,否则说明其未登录
#!/bin/bash
w | grep "^root\>" &> /dev/null && echo "root logged" || echo "root not logged" egrep = grep -E
egrep [OPTIONS] PATTERN [FILE...]
egrep练习:
1.显示当前系统root、centos或user1用户的默认shell和UID
# egrep "^root|centos|user1\>" /etc/passwd | cut -d: -f3,7 2.找出/etc/rc.d/init.d/functions文件(centos6)中某单词后面跟一个小括号的行
# egrep -o "^[_[:alnum:]]+\(\)" /etc/rc.d/init.d/functions 3.使用echo输出一绝对路径,使用egrep取出其基名
# echo "/etc/rc.d/init.d/functions" | egrep -o "[^\/]+" | tail -1 进一步:使用egrep取出路径的目录名,类似于dirname命令的结果
# echo "/tmp/init.d/function/base.txt" | egrep "(\/).*\1\b" 4.找出ifconfig命令结果中1-255之间的数值
# ifconfig | egrep "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"

linux基础之grep的更多相关文章

  1. Linux基础:Grep查询&AWK查询

    Grep:搜索文件内匹配指定内容的行 常用的Grep搜索方法: 1. grep "普通搜索内容" file( 或者 cat file|grep "普通搜索内容" ...

  2. Linux基础正则表达式:grep,sed

    先说明语系对正则表达式的影响    LANG=C:0,1,2,3,4...A,B,C,D...Z a b c d ... z    LANG=zh_CN:0,1,2,3,4...a A b B c C ...

  3. 【Linux基础】grep命令

    1.简介 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 命令格式:grep [option] pattern file 2.常用参数与举例: -e :  使用P ...

  4. Linux中通过grep命令检索文件内容和指定内容前后几行

    原文链接: https://www.linuxidc.com/Linux/2017-11/148390.htm Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命 ...

  5. Linux基础命令-Nginx-正则表达式( grep sed awk )-Shell Script--etc

    Linux基础使用 学习内容博客 内存 查看swap分区信息 > swapon -s 添加swap分区 > mkswap /dev/sdb2 > 激活 swapon -a /dev/ ...

  6. linux基础知识汇总(四)--ps grep命令

    转:http://www.cnblogs.com/allen8807/archive/2010/11/10/1873843.html http://www.cnblogs.com/end/archiv ...

  7. 10、Linux基础--find、正则、文本过滤器grep

    笔记 1.晨考 1.每个月的3号.5号和15号,而且这天是星期六时执行 00 00 3,5,15 * 6 2.每天的3点到15点,每隔3分钟执行一次 */3 3-15 * * * 3.每周六早上2点半 ...

  8. Linux基础练习题(二)

    Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...

  9. Linux课程实践一:Linux基础实践(SSH)

    一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...

随机推荐

  1. 客户端如何访问访问oracle 12c 64位的数据库

    服务器A安装的oracle 12c 64位的数据库,机器B如何访问oracle数据库. oracle客户端必须是用32位的客户端,plsql才能访问 准备: 1.下载instantclient-bas ...

  2. 写jquery插件(转载)

    如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再赘述了,用过的都知道.今天我们来讨论下jq ...

  3. date格式互转

    +"%Y/%m/%d-%H:%M:%S" date -d "2017/11/21 17:02:09" +%s

  4. iptables共享上网

    1.1 流程大概如下: 1.环境准备 内部服务器B 内网172.16.1.12 ifdown eth0 #首先关闭外网网卡 route add default gw 172.16.1.11 #把上图中 ...

  5. jquery怎么实现点击一个按钮控制一个div的显示和隐藏

    示例html 1 2 <div class="abc" style="display:none"></div> <input ty ...

  6. 【Python全栈-后端开发】Django进阶1-分页

    Django[进阶篇-1 ]分页 分页 一.Django内置分页 from django.core.paginator import Paginator, EmptyPage, PageNotAnIn ...

  7. jsr-303 参数校验—自定义校验注解

    1.为什么要自定义? 通过上篇学习,了解到很多常用注解了,但是呢,总是有那么些需求....   2.案例分析(手机号格式) 2.1.需要验证的实体 Bean public class LoginVo ...

  8. java框架之SpringBoot(9)-数据访问及整合MyBatis

    简介 对于数据访问层,无论是 SQL 还是 NOSQL,SpringBoot 默认采用整合 SpringData 的方式进行统一处理,添加了大量的自动配置,引入了各种 Template.Reposit ...

  9. python中接入支付宝当面付

    准备 由于正式环境需要商户信息,所以这里使用支付宝提供的沙箱环境.切换到正式环境后只需稍改配置. 1.点击进入蚂蚁金服平台官网. 2.如下图选择:开发者中心->开发服务下的研发服务->沙箱 ...

  10. VoiceXML标识元素及其属性

    VoiceXML 元素 <assign> 给变量赋值. <audio> 播放语音文件. <block> 无用户交互的可执行代码块. <catch> 捕获 ...