任督二脉之Shell中的正则表达式
VBird说学习Linux,掌握了Shell和正则就相当于打通了任督二脉,此后能力的成长才会突飞猛进。
Shell的基础学习之前已经总结了一篇博客:http://www.cnblogs.com/jyzhao/p/4485553.html
本文将总结Shell中的正则表达式及常用的字符处理命令,为打通任督二脉奠定基础_。
1. 基础正则表达式举例说明
`*`,`.`,`\`,`^word`,`word$`,`[list]`,`[^list]`,`[n1-n2]`,`\{n\}`,`\{n,m\}`
例1:简易判断日期格式
比如:2015-05-11,只是简单判断数字的格式。
^[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}$
例2:简易判断IP地址格式
比如:192.168.1.100,只是简单判断数字的格式。
[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}
例3:找出1.txt文本文件中以字母开头的以及不是以字母开头的行。
以字母开头的行:
grep --color=auto "^[a-z,A-Z]" 1.txt
不是以字母开头的行:
grep --color=auto "^[^a-z,A-Z]" 1.txt
2. 字符截取命令
cut命令
用途:对于分隔符规范的文本进行特定截取某些列,特点是简单易用。
例4:cut截取出用户名以及对应的uid,gid,过滤掉包含'/sbin'的行。
grep -v "/sbin" /etc/passwd | cut -f 1,3,4 -d ":"
截取结果示例:
root:0:0
oracle:500:500
grid:501:500
awk命令
用途:对于分隔符不规范的文本进行截取,特点是功能强大,语法比cut命令复杂。
awk '条件类型1{动作1}条件类型2{动作2} ...' filename
- awk的内置变量:
NF 每一行($0)拥有的字段总数
NR 目前awk所处理的是“第几行”数据
FS 目前的分隔字符,默认是空格键
awk的逻辑运算符:
>, <, >=, <=, ==, !=
例5:查询pmon进程的PID。
ps -ef | grep pmon | grep -v grep | awk '{print $2}'
例6:打印出/etc/passwd中uid<3的用户和他们的uid。
cat /etc/passwd | awk 'BEGIN{FS=":"} $3 < 3 {print $1 "\t" $3}'
注:注意BEGIN在这里的用途,没有BEGIN第一行显示会不正确。
例7:截取出系统根目录的磁盘空间使用率
df -h | awk '{print $5}'|cut -f 1 -d "%"
sed命令
sed可以将数据进行替换、删除、新增、选取特定行。
-n 只有经过sed处理的才显示(默认显示全部)
-e 直接在命令行模式上进行sed的动作编辑
-f 将sed的动作写入一个文件,然后-f filename执行filename中的sed命令
-r 支持扩展型正则表达式语法(默认是基础正则表达式语法)
-i 直接修改读取的文件内容,而不是默认的屏幕输出结果
例8:显示行号并打印出/etc/hosts,删除文件的前两行。
nl /etc/hosts | sed '1,2d'
例9:把/etc/hosts文件中的JY-DB全部替换为Alfred-DB显示出来
sed -e 's/JY-DB/Alfred-DB/g' /etc/hosts
注:此处不写-e参数也可以,如果两个及以上sed命令需要每个前面都写-e参数。
例10:直接修改/etc/hosts文件,在文件的第2行下插入新的一行“192.168.1.100 JY-DB”
sed -i '2a 192.168.1.100 JY-DB' /etc/hosts
3. 字符处理命令
sort命令
用途:对结果进行排序显示。
du -sk * | sort -rn
sort -t ":" -k "3,3" /etc/passwd
sort -n -t ":" -k "3,3" /etc/passwd
wc命令
用途:统计结果行,单词,字符的数量。
统计行wc -l
例11:统计oracle的用户进程数
ps -ef | grep LOCAL=NO | grep -v grep | wc -l
统计单词wc -w
例12:统计/etc/issue文件的单词数
wc -w /etc/issue
统计字符wc -m
例13:统计/etc/issue文件的字符数
wc -m /etc/issue
任督二脉之Shell中的正则表达式的更多相关文章
- 一个典型的后台软件系统的设计复盘——(三)打通任督二脉-context
武侠小说练功讲究打通任督二脉.程序设计练到一定程度也讲究打通任督二脉.好奇心强的同学可以搜搜“打通任督二脉有什么感觉”. spring的任督二脉ApplicationContext 最经典的任督二脉莫 ...
- 天河微信小程序入门《三》:打通任督二脉,前后台互通
原文链接:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=505&extra=page%3D1 天河君在申请到https ...
- Linux就这个范儿 第13章 打通任督二脉
Linux就这个范儿 第13章 打通任督二脉 0111010110……你有没有想过,数据从看得见或看不见的线缆上飞来飞去,是怎么实现的呢?数据传输业务的未来又在哪里?在前面两章中我们学习了Linux网 ...
- English learning method ---学英语重中之重打通“任督二脉”
漫漫十年艰辛路,英语学习之旅 曾经秉承“路漫漫其修远兮,吾将上下而求索”的信念,初一那年了解到原来(a b c d e f g) 不仅仅读作(啊,波,词,的,额,佛,哥),在英语的世界中它有另外的读法 ...
- Appium+python自动化(十)- 元素定位秘籍助你打通任督二脉 - 上卷(超详解)
简介 你有道灵光从天灵盖喷出来你知道吗,年纪轻轻就有一身横练的筋骨,简直百年一见的练武奇才啊,如果有一天让你打通任督二脉,那还不飞龙上天啊.正所谓我不入地狱谁入地狱,警恶惩奸维护世界和平这个任务就交个 ...
- 深度讲解Linux内存管理和Linux进程调度-打通任督二脉
我在多年的工程生涯中发现很多工程师碰到一个共性的问题:Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解CPU.内存资源等的真正分布,具体的工作机制,这使得他 ...
- K2 BPM_当K2遇上医药,用流程打通企业的任督二脉_业务流程管理系统
据调查,如今仍有60%的医药企业,存在合规经营和利润下降的困扰,在“研”.“产”.“供”.“销”的运营过程中,时时伴随着严苛的管理政策和法规.如何加强企业跨部门.跨组织.跨业务线的执行能力,始终是管理 ...
- TCP的慢启动、拥塞避免、重传、快恢复乱七八糟总是记不清?11个连环问让你一次性打通任督二脉
摘要:如果你的开发过程涉及数据传输,一直在重传.超时之类的方案里有困惑的话,不妨重新学一学可靠性最精致的TCP协议. 本文分享自华为云社区<TCP的慢启动.拥塞避免.重传.快恢复乱七八糟总是记不 ...
- linux学习的任督二脉-进程调度和内存管理
转自 宋宝华老师的博客原文:https://blog.csdn.net/21cnbao/article/details/77505330 内功心法 学习或遇到问题时,反过来主动思考如果我是设计者,我会 ...
随机推荐
- [原创]软件质量保证圈QQ群:197915314
[原创]软件质量保证圈QQ群:197915314 软件质量保证圈QQ群:197915314,讨论软件工程.软件过程改进.软件质量保证等(非测试群)! 欢迎各位同学来,来时请自报家门,名片修改格式:sh ...
- C#中Math.Round()实现中国式四舍五入
C#中Math.Round()实现中国式四舍五入 C#中的Math.Round()并不是使用的"四舍五入"法.其实在VB.VBScript.C#.J#.T-SQL中Round函数都 ...
- linux web服务器,防火墙iptables最简配置
配置防火墙(服务器安全优化) 安全规划:开启 80 22 端口并 打开回路(回环地址 127.0.0.1) # iptables –P INPUT ACCEPT # iptables –P OUTP ...
- Android 源码获取-----在Windows环境下通过Git得到Android源代码
在学习Android的过程中,深入其源代码研究对我们来说是非常重要的,这里将介绍如何通过在Windows环境下使用Git来得到我们的Android源代码. 1.首先确保你电脑上安装了Git,这个通过 ...
- [Aaronyang]谈谈2015年AY对WPF全面技术总结40多篇WPF,炫到没朋友的AYUI来了
原著:AY WPF博客- 把wpf推广出去,让那些鄙视的人说不 大家好! 我是AY,首先声明,我在做一件很枯燥的事情,我是个91后程序员,每天熬夜完成计划的过着下班后的生活. 那天有 ...
- Dell U2913WM使用感受
21:9比例,本来想代替双屏的,一周用下来还是不适应,如何能弯成曲面就爽了.感觉最舒服的还是以前19寸5:4双屏,点距大. 还尝试在旁边立个23寸,看了15分钟就受不了,头晕. 漏光,还行. 加了个A ...
- 十进制转二进制and位运算符
先给大家送个福利! ---------------简单口算-------------------------- 10 >> 1010 除2取余倒写 /* 十进制转二进制规则是:除二取 ...
- Ques前端组件化体系
Ques是一套组件化系统,解决如何定义.嵌套.扩展.使用组件. 传统开发模式的痛点 无法方便的引用一个组件,需要分别引用其Javascript.Template.CSS文件 我们期望能以MV*的方式去 ...
- Swift编程语言中的方法引用
由于Apple官方的<The Swift Programming Guide>对Swift编程语言中的方法引用介绍得不多,所以这里将更深入.详细地介绍Swift中的方法引用. Swift与 ...
- 解决vbox下安装centos不能上网问题
由于工作需要用到Centos做服务器,使用VBOX安装Centos7系统后发现不能上网,记录解决方法,以便下次使用.找到/etc/sysconfig/network-scripts/ifcfg-enp ...