Linux的正则练习
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的正则练习的更多相关文章
- linux c正则
c 正则 -------------------------------------------------- 标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一 ...
- linux 下正则匹配时间命名格式的文件夹
用正则表达式匹配时间格式命名的文件夹 ls mypath | grep -E "[0-9]{4}-[0-9]{1,2}" mypath为需要查询的目录 查询出来的文件夹格式为:例 ...
- 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 ...
- linux grep 正则
grep : 显示匹配行 -v: 反显示 -e 使用扩展正则表达式 黑色字体表明是原生正则表达式 红色字体表明是扩张正则表达式 1.匹配操作符 \: 转义字符串(正则使用扩展字符操作 没有使用-e ...
- linux之正则
grep命令: -V 打印grep的版本号 -E 解释PATTERN作为扩展正则表达式,也就相当于使用egrep. -F 解释PATTERN作为固定字符串的列表,由换行符 ...
- linux基础正则
1.^word #匹配word开头的内容,vi/vim编辑器里^代表一行的开头. 2.word$ #匹配以word结尾的内容,vi/vim编辑器里$代表一行的结尾. 3.^$ #表示空行 4.. #代 ...
- Linux篇---Grep和正则匹配
一.前述 Linux中正则匹配查找比较常用,所以分享一篇关于正则匹配和Grep结合的文章. 二.匹配规则 匹配操作符: \ 转义字符. ...
- Linux(5):正则表达式 & 权限
正则表达式: 特殊符号: '' ---> 所见即所得,里面的内容都会被原封不动的输出出来 "" ---> 与单引号类似,但其中的特殊符号会被解析运行 `` ---> ...
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
随机推荐
- spring boot中Elasticsearch默认版本问题
这是今天遇上的一个问题. 添加的依赖是7.2.0版本的Elasticsearch,但是其中有两项是6.4.3的,导致我从其他地方移植过来的代码报错. 据大神说,这是因为spring boot中默认的E ...
- Oracle导出包含clob字段的sql脚本工具
之前工作中遇到生产环境不允许导入Oracle的dmp文件,只能导入sql脚本,但是表中存在clob字段,直接用plsql工具无法导出clob字段,用了下dbvisualizer可以直接导出,亲测可用. ...
- container_of宏
title: container_of宏 date: 2019/7/24 15:49:26 toc: true --- container_of宏 解析 在linux链表结构中有这样一个宏,通过成员变 ...
- NEO4J (二)
README 整理 kernel.impl.coreapi 这个包包含核心API的直接实现.核心API是org.neo4j中定义的API.graphdb及其子包. 这里的类是实现细节,可能会在不通知的 ...
- Graduation(思维,树上取叶子几次取完)
题意:https://codeforces.com/group/ikIh7rsWAl/contest/259944/problem/G 给你一颗树(可能有好几棵),你每次最多只能去掉k个叶子节点,问你 ...
- 散列查找的C实现
概念 散列查找,类似与查英文字典的过程.如果我们要查找"zoo"(key)对应的释义(value),我们不会从第一页开始逐页查找(顺序查找),而是直接根据大致的推算(Hash函数) ...
- python-day3(正式学习)
执行python的两种方式 交互式 优点:运行一句执行一句,方便修改 缺点:关闭即消失,无法保存 命令行式 优点:能一直保存 缺点:代码全部写完才可以调试bug 以后尽量使用pycharm和jupyt ...
- 【规律】Growing Rectangular Spiral
Growing Rectangular Spiral 题目描述 A growing rectangular spiral is a connected sequence of straightline ...
- 《深入理解 Java 虚拟机》学习 -- Java 内存模型
<深入理解 Java 虚拟机>学习 -- Java 内存模型 1. 区别 这里要和 JVM 内存模型区分开来: JVM 内存模型是指 JVM 内存分区 Java 内存模型(JMM)是指一种 ...
- C# Base64 操作类
using System; using System.Text; namespace VWFC.IT.CUP.BLL.Util { /// <summary> /// Base64 too ...