grep和 egrep的正则表达式

1、显示三个用户root、wang的UID和默认shell

cat /etc/passwd | grep “^\(root\|wang\)” | tr ‘:’ ‘ ‘| cut -d’ ‘ -f1,3,7

cat /etc/passwd | egrep ‘^(root|wang)’ | tr ‘:’ ‘ ‘ | cut -d’ ‘ -f1,3,7

2、找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行

cat /etc/rc.d/init.d/functions | grep  “^[[:alpha:]][[:alnum:]_]* *()”
3、使用egrep取出/etc/rc.d/init.d/functions中其基名

echo /etc/rc.d/init.d/functions | egrep -o ‘\<[[:alnum:]_\.]*\>/?$'(标准的目录名,字母数字下划线,其他字符不支持)

echo /etc/rc.d/init.d/functions | egrep -o ‘[^/]+*/?$’

4、使用egrep取出上面路径的目录名

echo /etc/rc.d/init.d/functions | egrep -o ‘\<[[:alnum:]_\.]*\>'(标准的目录名,字母数字下划线,其他字符不支持)

echo /etc/rc.d/init.d/functions | egrep -o ‘[^/]+’
5、统计last命令中以root登录的每个主机IP地址登录次数

last | grep ^root | grep ‘[[:digit:]]\{1,3\}\(\.[[:digit:]]\{1,3\}\)\{3\}’\ | tr -s ‘ ‘ ‘:’ | cut -d: -f1,3 | sort -t”:” -k2 | uniq -c
6、利用扩展正则表达式分别表示0-9、10-99、100-199、200-249、250-255

0-9 regex: [[:digit:]]

10-99 regex: [1-9][0-9]

100-199 regex: 1[0-9][0-9]

200-249 regex: [1-2][0-4][0-9]

250-255 regex: 25[0-5]
7、显示ifconfig命令结果中所有IPv4地址

ifconfig | grep -o ‘[[:digit:]]\{3\}\(\.[[:digit:]]\{3\}\)\{3\}’
8、将此字符串:welcome to linux 中的每个字符去重并排序,重复次数多的排到前面

echo ‘welcome to  linux’ | grep -o “.” | sort | uniq -c | sort -rnk1
9、用正则表达式表示出QQ号

qq:  [[:digit:]]\{1,12\}

10、用正则表达式表示出身份证号

15位的身份证号码: 

(1)1~6位为地区代码
(2)7~8位为出生年份(2位),9~10位为出生月份,11~12位为出生日期
(3)第13~15位为顺序号,并能够判断性别,奇数为男,偶数为女。
regex: [[:digit:]]\{8\}\(1[0-2]\|0[1-9]\)\(0[1-9]\|[1-3][0-9]\)[[:digit:]]\{3\}
18位的身份证号码 如:
1~6位为地区代码
7~14位为出生年月日
15~17位为顺序号
18位为校验位包括x
regex: [[:digit:]]\{6\}\(19[[:digit:]]\{2\}\|20[[:digit:]]\{2\}\)\(1[0-2]\|0[1-9]\)\(0[1-9]\|[1-3][0-9]\)[[:digit:]]\{2\}[[:digit:]xX] 最后的regex:\([[:digit:]]\{8\}\(1[0-2]\|0[1-9]\)\(0[1-9]\|[1-3][0-9]\)[[:digit:]]\{3\}\|[[:digit:]]\{6\}\(19[[:digit:]]\{2\}\|20[[:digit:]]\{2\}\)\(1[0-2]\|0[1-9]\)\(0[1-9]\|[1-3][0-9]\)[[:digit:]]\{2\}[[:digit:]xX]\)  11、用正则表达式表示手机号
regex: [[:digit:]]\{11\}
12、用正则表达式表示邮箱: x@y.z.m
regex:[[:alpha:]][[:alnum:]_\.]\{0,20\}@[[:alnum:]_]\{1,30\}\(\.[[:alnum:]_]\{1,30\}\)*
Vim的正则表达式

1、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符

cp  /etc/profile /tmp/profile

vim /tmp/profile

:%s@^[[:space:]]*@@g

2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号

cp /etc/rc.d/init.d/functions /tmp/functions

vim /tmp/functions

:%s@^[[:space:]]@#&@g

Linux的正则练习的更多相关文章

  1. linux c正则

    c 正则 --------------------------------------------------    标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一 ...

  2. linux 下正则匹配时间命名格式的文件夹

    用正则表达式匹配时间格式命名的文件夹 ls mypath | grep -E "[0-9]{4}-[0-9]{1,2}" mypath为需要查询的目录 查询出来的文件夹格式为:例 ...

  3. Linux sed正则匹配删除整行

    原文内容: [root@10 tmp]# more test.log 2019-12-01 09:09:02 Failed 2019-12-01 09:12:02 Failed 2019-12-01 ...

  4. linux grep 正则

    grep : 显示匹配行 -v: 反显示 -e 使用扩展正则表达式 黑色字体表明是原生正则表达式 红色字体表明是扩张正则表达式 1.匹配操作符 \: 转义字符串(正则使用扩展字符操作  没有使用-e ...

  5. linux之正则

    grep命令: -V      打印grep的版本号 -E      解释PATTERN作为扩展正则表达式,也就相当于使用egrep. -F      解释PATTERN作为固定字符串的列表,由换行符 ...

  6. linux基础正则

    1.^word #匹配word开头的内容,vi/vim编辑器里^代表一行的开头. 2.word$ #匹配以word结尾的内容,vi/vim编辑器里$代表一行的结尾. 3.^$ #表示空行 4.. #代 ...

  7. Linux篇---Grep和正则匹配

    一.前述 Linux中正则匹配查找比较常用,所以分享一篇关于正则匹配和Grep结合的文章. 二.匹配规则 匹配操作符: \                  转义字符.                 ...

  8. Linux(5):正则表达式 & 权限

    正则表达式: 特殊符号: '' ---> 所见即所得,里面的内容都会被原封不动的输出出来 "" ---> 与单引号类似,但其中的特殊符号会被解析运行 `` ---> ...

  9. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

随机推荐

  1. javascript let

    es6支持通过let关键字声明属于单独块{}的变量,更好的管理变量作用屿 funtion foo() { var a=1; if (a>1) { let b=2; //只属于if模块 while ...

  2. 转载:同一台电脑教你配置多个Tomcat的环境变量

    装两个tomcat 分别是6.0和7.0 可想运行tomcat6.0 但是实际上却运行tomcat7.0 两个版本都是用解压缩包 其实就是不能运行tomcat6.0 只能运行7.0 两个环境变量都配置 ...

  3. java中JDBC是什么?

    [学习笔记] JDBC是什么? JDBC即(java database connectivity数据连接).JDBC是Sun公司编的一堆类和方法,都封装在java.sql包中.你可以利用这堆类和方法来 ...

  4. 【AtCoder】AGC008

    AGC008 A - Simple Calculator 如果符号相同,那么如果y比x大直接走,否则需要两次反号 如果符号不同,需要绝对值的差加一次反号 如果有一个是0,且y比x要小,那只需要一次反号 ...

  5. Vue.js + Element.ui 从搭建环境到打包部署

    一.搭建环境 由于新的node已经集成了npm,所以直接安装node,前往node官网下载最新版本的node,根据自己的操作系统选择相应的包,按照步骤一步步走就可以,这里不做过多介绍. 安装好后可以打 ...

  6. spring-redis使用

    导包 注入调用           opsForValue()     opsForList() redisTemplate   配置 ,为了   对key采用string序列化方式          ...

  7. 剑指offer39:平衡二叉树

    1 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 2 思路和方法 平衡二叉树,又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1 ...

  8. centos7.2 安装Lnmp

    1. 安装编译工具及库文件 yum install -y make apr* autoconf automake curl  \ curl-devel gcc gcc-c++ cmake gtk+-d ...

  9. F12的用法

    F12在Web测试中十分重要,可以定位元素(UI自动化常用),查看网页响应时间/数据(定位BUG,测单页面响应时间→性能) Elements 点击这个按钮,将光标移至“Google”图片位置并点击,右 ...

  10. PM2 部署 nodejs API项目

    PM2的主要特性: 内建负载均衡(使用Node cluster 集群模块) 后台运行 0秒停机重载,我理解大概意思是维护升级的时候不需要停机. 具有Ubuntu和CentOS 的启动脚本 停止不稳定的 ...