答案详见: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格式

 

 

转载于:https://www.cnblogs.com/Baby-Lady/p/6600054.html

正则表达式,grep,sed,相关推荐

  1. 正则表达式与扩展正则表达式(grep, sed, awk)

    Linux中用来在文件中搜索字符串的命令,如grep, sed, awk等命令支持正则表达式与扩展正则表达式. 1. 基础正则表达式 符号 解释 示例 * 匹配0次或多次 b.*t . 匹配任意字符 ...

  2. 正则表达式grep sed awk总结

    1.grep命令总结 [root@cacti ~]# cat zh888.txt  //查看zh888.txt内容 123 456 abc def def [root@cacti ~]# grep - ...

  3. 正则表达式中grep,sed的用法(包括基本的正则表达式和扩展的正则表达式)

    一 正则表达式   Basic REGEXP:基本正则表达式 Extended REGEXP:扩展正则表达式 (正则表达式是使得计算机变成智能化的重要途径) 1.1 基本正则表达式 . : 表示匹配任 ...

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

    原文连接:http://www.cnblogs.com/alwayswyy/p/5191137.html 本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下 一. ...

  5. Linux中正则表达式与文件格式化处理命令(awk/grep/sed)

    一.正则表达式 1.1国际字符模式匹配或匹配模式的类名 [:alnum:] : 0-9,A-Z,a-z [:alpha:] : A-Z,a-z [:upper:] : A-Z [:lower:] : ...

  6. Linux正则表达式grep与egrep

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

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

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

  8. grep, sed, awk

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

  9. linux grep sed awk

    linux 文本编辑命令grep sed awk(转)     grep grep (global search regular expression(RE) and print out the li ...

  10. linux 文本编辑命令grep sed awk

    grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...

最新文章

  1. Java矩形区域食物链_AcWing 240. 食物链(JAVA)
  2. 阿姨帮万勇:O2O产品的颠覆与布局,阿姨帮未来发展战略独家披露
  3. 百度安全发布PaddleSleeve 面向产业实践开启AI模型安全与隐私探索
  4. 深度学习 《梯度消失和梯度爆炸》
  5. matlab 一元线性微分,怎样用matlab求一元线性函数极值
  6. python时间序列库_python Pandas库基础分析之时间序列的处理详解
  7. 删除任务管理器中的启动项
  8. c++写入二进制、TXT文件,读取二进制、TXT文件,切分字符串(入数组)
  9. android qq robot,KG Robot(QQ机器人手机版)
  10. Android Adb命令恢复出厂设置
  11. 2022-2027年中国OLED显示面板行业发展监测及投资战略研究报告
  12. 注册表Regedit实现右键管理员权限运行notepad++打开文件
  13. 筛选尚未注册的域名查询工具
  14. 2_linux-常用命令-实例
  15. 供应商网店货源哪里找?直播带货靠谱货源(电商教程)
  16. 消除小黑点html,word黑点怎么去掉,Word文档项目编号前有个小黑点
  17. 决策树 基于python实现ID3,C4.5,CART算法
  18. 快速学会如何在linux上用户环境变量和系统环境变量
  19. 一文带你了解SLB、F5、Nginx负载均衡
  20. 计算机英语第五版翻译,计算机专业英语教程第5版翻译

热门文章

  1. 分布式一致性与共识算法
  2. ContentProvider源码分析(原)
  3. 数据存储之 SQLite 数据库操作(一)
  4. Hyperledger Fabric1.0架构概览
  5. Gradle不匹配报错的终极大招(gradle插件版本和gradle版本对应关系)
  6. 计算机桌面颜色如何设置标准,电脑调整桌面颜色设置_电脑桌面颜色设置
  7. sir跟seir模型有啥区别_H3C B5mini拆机,看一下跟B5有啥区别
  8. 如何进入python程序代码编辑环境_Python怎么打开代码编辑器 来学习吧
  9. android 单例存储,Android 单例在内存中存储数据
  10. 无法访问本地ip_当金万维异速联无法访问金蝶软件怎么办?