答案详见:http://www.cnblogs.com/linhaifeng/p/6596660.html

作业一:整理正则表达式博客

^ # 行首定位
$ # 行尾定位
. # 匹配除换行符以外的任意字符
* # 匹配0或多个重复字符
+ # 重复一次或更多次
? # 重复零次或一次
? # 结束贪婪因子 .*? 表示最小匹配
[] # 匹配一组中任意一个字符
[^] # 匹配不在指定组内的字符
\ # 用来转义元字符
< # 词首定位符(支持vi和grep) <love> # 词尾定位符(支持vi和grep) love>
x\{m\} # 重复出现m次
x\{m,\} # 重复出现至少m次
x\{m,n\} # 重复出现至少m次不超过n次
X? # 匹配出现零次或一次的大写字母 X
X+ # 匹配一个或多个字母 X
() # 括号内的字符为一组
(ab|de)+ # 匹配一连串的(最少一个) abc 或 def;abc 和 def 将匹配
[[:alpha:]] # 代表所有字母不论大小写
[[:lower:]] # 表示小写字母
[[:upper:]] # 表示大写字母
[[:digit:]] # 表示数字字符
[[:digit:][:lower:]] # 表示数字字符加小写字母
 
元字符
 
\d # 匹配任意一位数字
\D # 匹配任意单个非数字字符
\w # 匹配任意单个字母数字下划线字符,同义词是 [:alnum:]
\W # 匹配非数字型的字符
 
 
 
字符类:空白字符
 
\s # 匹配任意的空白符
\S # 匹配非空白字符
\b # 匹配单词的开始或结束
\n # 匹配换行符
\r # 匹配回车符
\t # 匹配制表符
\b # 匹配退格符
\0 # 匹配空值字符
 
 
 
字符类:锚定字符
 
\b # 匹配字边界(不在[]中时)
\B # 匹配非字边界
\A # 匹配字符串开头
\Z # 匹配字符串或行的末尾
\z # 只匹配字符串末尾
\G # 匹配前一次m//g离开之处
 
 
捕获
 
(exp) # 匹配exp,并捕获文本到自动命名的组里
(?<name>exp) # 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp) # 匹配exp,不捕获匹配的文本,也不给此分组分配组号
 
 
 
零宽断言
 
(?=exp) # 匹配exp前面的位置
(?<=exp) # 匹配exp后面的位置
(?!exp) # 匹配后面跟的不是exp的位置
(?<!--exp) # 匹配前面不是exp的位置
(?#comment) # 注释不对正则表达式的处理产生任何影响,用于注释
 
 
 
特殊字符
 
http://en.wikipedia.org/wiki/Ascii_table
^H \010 \b
^M \015 \r
匹配特殊字符: ctrl+V ctrl不放在按H或M 即可输出^H,用于匹配
--></name></love>

  

作业二:grep作业(正则表达式及字符处理)
目标文件/etc/passwd,使用grep命令或egrep
1.显示出所有含有root的行:

grep "root" /etc/passwd

2.输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的内容:

grep -C 2 "bash" /etc/passwd

3. 显示出有多少行含有nologin。

[root@python_lb yan]# grep -c "nologin" /etc/passwd

4.显示出那些行含有root,并将行号一块输出。

[root@python_lb yan]# grep -n "root" /etc/passwd

5.显示出文件中

6.新建用户
abominable
abominate
anomie
atomize
编写正则表达式,将他们匹配出来

[root@python_lb yan]# egrep '^a[a-z]+e' passwd

7.建四个用户
Alex213sb
Wpq2222b
yH438PIG
egon666
egon

过滤出用户名组成是字母+数字+字母的行

[root@python_lb yan]# grep -Eni '^[a-Z]+[0-9]+[a-Z]+' passwd
53:Alex213sb:x:1005:1005::/home/Alex213sb:/bin/bash
54:Wpq2222b:x:1006:1006::/home/Wpq2222b:/bin/bash
55:yH438PIG:x:1007:1007::/home/yH438PIG:/bin/bash

8.显示出/etc目录下所有包含root的文件名

[root@python_lb yan]# mkdir /etc/root
[root@python_lb yan]# mkdir /etc/1root
[root@python_lb yan]# mkdir /etc/root2
[root@python_lb yan]# ls /etc/|grep root
[root@python_lb yan]# ls /etc/*root*

9. 过滤掉/etc/ssh/sshd_config内所有注释和所有空行

[root@python_lb yan]# grep -v "^$" /etc/ssh/sshd_config|grep -v "^#"

作业三:Sed作业:以/etc/passwd文件为模板

1,删除文件每行的第一个字符。

[root@python_lb yan]# sed -r 's/^([a-Z0-9-])([a-Z0-9-]+)/\2/g' passwd

2,删除文件每行的第二个字符。

[root@python_lb yan]# sed -r 's/^([a-Z0-9-])([a-Z0-9-])([a-Z0-9-]+)/\1\3/g' passwd

3,删除文件每行的最后一个字符。

[root@python_lb yan]# sed -r 's/([a-Z]+)[a-Z]$/\1/g' passwd

4,删除文件每行的倒数第二个字符。

[root@python_lb yan]# sed -r 's/^(.*)(.)(.)$/\1\3/g' passwd

5,删除文件每行的第二个单词。

[root@python_lb yan]# sed -r 's/^([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)/\1\2\4/g' passwd
[root@python_lb yan]# sed -r 's/^([a-Z0-9-]+)([^a-Z]+)([a-Z]+)([^a-Z]+)/\1\2\4/g' passwd

6,删除文件每行的倒数第二个单词。

[root@python_lb yan]# sed -r 's/([a-Z]+)([^a-Z]+)([a-Z]+)$/\2\3/g' passwd

7,删除文件每行的最后一个单词。

[root@python_lb yan]# sed -r 's/([^a-Z]+)([a-Z]+)$/\1/g' passwd

8,交换每行的第一个字符和第二个字符。

[root@python_lb yan]# sed -r 's/(^[a-Z])([a-Z])/\2\1/g' passwd

9,交换每行的第一个字符和第二个单词。

[root@python_lb yan]# sed -r 's/(^[a-Z])([a-Z0-9-]+)([^a-Z]+)([a-Z]+)/\4\2\3\1/g' passwd

10,交换每行的第一个单词和最后一个单词。

sed -r 's/([a-Z]+)(.*)([^a-Z]+)([a-Z]+)$/\4\2\3\1/' passwd

11,删除一个文件中所有的数字。

 sed -r '/[0-9]+//g' passwd

12,删除每行开头的所有空格。

sed -r 's/^ *//g' passwd

13,用制表符替换文件中出现的所有空格。

sed -r 's/ /\t/g' /etc/passwd

14,把所有大写字母用括号()括起来。

sed -r 's/[A-Z]/(&)/g' /etc/passwd
 

15,打印每行3次。

sed 'p;p' /etc/passwd

 

16,只显示每行的第一个单词。

sed '1~2d' /etc/passwd
 

17,打印每行的第一个单词和第三个单词。

18,用命令获取格式为 mm/yy/dd 的日期格式,结合管道,将其换成 mm;yy;dd格式

 

 

正则表达式,grep,sed,的更多相关文章

  1. 开发环境入门 linux基础 (部分)正则表达式 grep sed

    /etc/profile /etc/bashrc  .变量添加到shell环境中,永久生效. /root/.bashrc /root/.bash_profile 正则表达式 定义:正则就是用一些具有特 ...

  2. 使用方便 正则表达式grep,sed,awk(一)

    一些无稽之谈: 对于正则表达式,永远似了解不明白,看到一些代码,脚本定期,awk,sed.心里总有点虚.主要是记不住.平时又没怎么用,也就没总结了. 如今有空,决定总结一下,顺便克服一下看到shell ...

  3. 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 ...

  4. linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)

    本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www. ...

  5. grep, sed, awk

    这几个工具是shell中非常好用的文本流处理工具,可以进行查找,编辑或者分析等工作,它们都支持正则表达式,也支持使用shell内置的变量 grep grep是一个字符串比较工具,用于从文件中提取满足条 ...

  6. Linux正则表达式grep与egrep

    grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...

  7. grep与正则表达式,grep、egrep和fgrep

    grep用法详解:grep与正则表达式 首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串. ...

  8. 【Linux】 字符串和文本处理工具 grep & sed & awk

    Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...

  9. grep, sed 与 awk 补补课,到底怎么用!

    grep, sed 与 awk 相当有用 ! gerp 查找, sed 编辑, awk 根据内容分析并处理. awk(关键字:分析&处理) 一行一行的分析处理 awk '条件类型1{动作1}条 ...

  10. linux三剑客grep|sed|awk实践

    最好先学习正则表达式的基本用法,以及正则表达式BREs,EREs,PREs的区别 此坑待填 grep sed awk

随机推荐

  1. element-ui 2.4.3 如何实现对form部分字段验证的解决方法?

    这是实际项目中的一个例子: 新增人员信息功能: 必填:姓名 .电话(验证电话格式): 非必填:备注.微信.邮箱(验证邮箱格式) 必填验证: 邮箱格式验证: 今天偶然看到 element-ui 2.4. ...

  2. Java基础面试题总结

    目录 索引 Java基础知识篇 Java web基础知识总结 Java集合篇常见问题 Java基础知识篇 面向对象和面向过程的区别 面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较 ...

  3. 自制操作系统Antz(7)——实现内核 (上)

    Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs. ...

  4. kali网络配置

    touch 1.txt#创建一个文件 配置网卡 auto eth0iface eth0 inet staticaddress 172.16.30.102#要设置的主机IP地址netmask 255.2 ...

  5. 关于 diff 和patch

    参考: https://blog.csdn.net/zygblock/article/details/53384862 diff和patch是 版本控制 git 的不可缺少的工具 diff 是用来比较 ...

  6. vue怎么引入外网json文件

    今日吃午饭时,伊万卡前端小妹问了我一个问题."App中有一个模块是用H5做的,其中有一个接口读取的是本地json资源文件,但是这个文件修改时间不定,我又不想每次修改了这个文件再重新发版打个包 ...

  7. .NET Core Agent

    .NET Core Agent 熟悉java的朋友肯定知道java agent,当我看到java agent时我很是羡慕,我当时就想.net是否也有类似的功能,于是就搜索各种资料,结果让人很失望.当时 ...

  8. 小程序使用阿里巴巴TTF字体文件以及图标

    转话地址https://transfonter.org 第一步:下载需要的字体图标 进入阿里图标官网http://iconfont.cn/搜索自己想要的图标,如这里需要一个购物车的图标,流程为: 搜索 ...

  9. MAVEN中的Scope

    Dependency Scope 在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用6个值: *im ...

  10. GT sport赛道详解 - 富士国际赛车场

    练了3-4个小时,最好的成绩只有2'09多,这5秒真的很难跨越,很是绝望,感觉碰到瓶颈了. 看了几个视频,发现大家的走线有些差异,但是切apx的极速都是一样的,所以在复合弯道,走线其实不止一种. 分析 ...