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

正则表通常被用来检索、替换那些符合某个模式(规则)的文本,为了提取对自己有用的信息,由命令解释执行;而通配符和命令是同一级别,为了提示处理效率,直接由shell解释执行。

^ 行首
$ 行尾
. 除了换行符以外的任意单个字符
* 前导字符的零个或多个
+ 前导字符一个或多个
? 前导字符零个或一个
x{m} x出现m次
x{m,n} x出现m次至n次
[] 字符组内的任一字符
[^] 取反

作业二:grep作业(正则表达式及字符处理)

grep -E=egrep 扩展模式

目标文件/etc/passwd,使用grep命令或egrep

1.显示出所有含有root的行:

[root@ym /]# egrep 'root' /etc/passwd root:x:::root:/root:/bin/bash operator:x:::operator:/root:/sbin/nologin

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

[root@ym /]# egrep -C 'bash' /etc/passwd root:x:::root:/root:/bin/bash bin:x:::bin:/bin:/sbin/nologin daemon:x:::daemon:/sbin:/sbin/nologin --

postfix:x:

:::/var/spool/postfix:/sbin/nologin tcpdump:x::::/:/sbin/nologin yangming:x:::yangming:/home/yangming:/bin/bash nginx:x:::Nginx web server:/var/lib/nginx:/sbin/nologin

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

[root@ym /]# egrep -c 'nologin' /etc/passwd

40

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

[root@ym /]# egrep -n 'root' /etc/passwd:root:x:::root:/root:/bin/bash :operator:x:::operator:/root:/sbin/nologin

5.显示出文件中

6.新建用户

abominable

abominate

anomie

atomize

编写正则表达式,将他们匹配出来

[root@ym /]# egrep 'a.omi(nabl|nat|z|)e' /etc/passwd

7.建四个用户

Alex213sb

Wpq2222b

yH438PIG

egon666

egon

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

[root@ym /]# useradd Alex213sb [root@ym /]# useradd Wpq2222b [root@ym /]# useradd yH438PIG [root@ym /]# useradd egon666 [root@ym /]# useradd egon [root@ym /]# tail - /etc/passwd

Alex213sb:x:

:::/home/Alex213sb:/bin/bash Wpq2222b:x::::/home/Wpq2222b:/bin/bash yH438PIG:x::::/home/yH438PIG:/bin/bash egon666:x::::/home/egon666:/bin/bash egon:x::::/home/egon:/bin/bash

[root@ym /]# egrep '[a-Z]+[0-9]+[a-Z]+:' /etc/passwd

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

[root@ym /]# ls /etc/ |egrep 'root'

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

[root@ym /]# grep -v '^#' /etc/ssh/sshd_config |grep '.$'

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

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

[root@ym /]# sed -r 's/^(.)(.*)$/\2/g' /etc/passwd

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

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

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

[root@ym /]# sed -r 's/(.*)(.)$/\1/g' /etc/passwd

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

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

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

[root@ym /]# sed -r 's/([a-Z]+)([^a-Z]+)([a-Z]+)(.*)$/\1\2\4/g' /etc/passwd

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

[root@ym /]# sed -r 's/([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]*)$/\1\3\4\5/g' /etc/passwd

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

[root@ym /]# sed -r 's/(.*)([^a-Z]+)([a-Z]+)([^a-Z]*)$/\1\2\4/g' /etc/passwd

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

[root@ym /]# sed -r 's/^(.)(.)(.*)/\2\1\3/g' /etc/passwd

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

[root@ym /]# sed -r 's/^(.)([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]*)/\5\2\3\4\1\6/g' /etc/passwd

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

[root@ym /]# sed -r 's/^([a-Z]+)(.*)([^a-Z]+)([a-Z]+)$/\4\2\3\1/g' /etc/passwd

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

[root@ym /]# sed -r 's/[0-9]//g' /etc/passwd

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

[root@ym /]# vim /etc/passwd

[root@ym 

/]# head - /etc/passwd

   root:x:

::root:/root:/bin/bash bin:x:::bin:/bin:/sbin/nologin daemon:x:::daemon:/sbin:/sbin/nologin adm:x:::adm:/var/adm:/sbin/nologin[root@ym /]# sed -r 's/^ *//' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

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

[root@ym /]# sed -r 's/ /\t/g' /etc/passwd

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

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

15,打印每行3次。

[root@ym /]# sed -r 'p;p' /etc/passwd

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

[root@ym /]# sed -r 's/^([^a-Z]*)([a-Z]+)([^a-Z]*)(.*)/\2/' /etc/passwd

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

[root@ym /]# sed -r 's/^([^a-Z]*)([a-Z]+)([^a-Z]*)([a-Z]+)([^a-Z]*)([a-Z]+)([^a-Z]*)(.*)/\2\6/' /etc/passwd

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

[root@ym /]# date +"%m/%Y/%d"|sed -r 's/\//;/g'
;;

Python之路-正则表达式的更多相关文章

  1. python之路 正则表达式,模块导入的方法,hashlib加密

    一.正则表达式re python中re模块提供了正则表达式相关操作 字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的 ...

  2. python之路正则表达式

    元字符 蓝色框中有非贪婪模式也不起作用,非贪婪模式在+后加上?号 有空字符串

  3. Python高手之路【五】python基础之正则表达式

    下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...

  4. python之路 目录

    目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...

  5. Python之路【第十九篇】:爬虫

    Python之路[第十九篇]:爬虫   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...

  6. Python之路【第十八篇】:Web框架们

    Python之路[第十八篇]:Web框架们   Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...

  7. Python之路【第十七篇】:Django【进阶篇 】

    Python之路[第十七篇]:Django[进阶篇 ]   Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...

  8. Python之路【第十六篇】:Django【基础篇】

    Python之路[第十六篇]:Django[基础篇]   Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...

  9. Python之路,Day14 - It's time for Django

    Python之路,Day14 - It's time for Django   本节内容 Django流程介绍 Django url Django view Django models Django ...

随机推荐

  1. Input file 文本框美化

    HTML原生的input file 上传按钮有多(无)不(力)漂(吐)亮(槽)我就不多说了.大家几乎在项目中都会有遇到图片.等文件需要上传的地方,好看的文件上传按钮会使人身心愉悦(我瞎说的).好了不多 ...

  2. iOS开发之Runtime常用示例总结

    经常有小伙伴私下在Q上问一些关于Runtime的东西,问我有没有Runtime的相关博客,之前还真没正儿八经的总结过.之前只是在解析第三方框架源码时,聊过一些用法,也就是这些第三方框架中用到的Runt ...

  3. 从HTML5规范弄清i、em、b、strong元素的区别

    为了语义化,HTML5增加了不少新标签.其中i.em和b.strong这两组标签是最容易弄混的,不好好去探究一下,还真说不清.这个也是前端面试中经常会问的问题.今天从源头上,也就是从HTML5的文档( ...

  4. 前端安全(XSS、CSRF防御)

    一.网络安全          OWASP:开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)        OWASP是一个开源的 ...

  5. linux下zookeeper 配置参数

    -----------zookeeper 配置文件 clientPort ---服务的监听端口dataDir ---用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里 (注意 ...

  6. 2017-3-5 C#基础 函数

    函数/方法:非常抽象独立完成某项功能的一个个体 函数的作用: 提高代码的重用性提高功能开发的效率提高程序代码的可维护性 函数分为: 固定功能函数高度抽象函数 函数四要素:输入,输出,函数体,函数名 p ...

  7. C#基础——数组(冒泡排序)

    数组 所谓数组,就是相同数据类型的元素按一定的顺序的集合,就是把有限个类型相同的变量用一个名字来命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组的各个变量称为数组的分量 ...

  8. Alamofire源码解读系列(三)之通知处理(Notification)

    本篇讲解swift中通知的用法 前言 通知作为传递事件和数据的载体,在使用中是不受限制的.由于忘记移除某个通知的监听,会造成很多潜在的问题,这些问题在测试中是很难被发现的.但这不是我们这篇文章探讨的主 ...

  9. python算法(一)

    python算法(一) 一.求数x的因子 x=100 divisors=()#初始化空的元组 for i in range(1,x): if x%i==0: divisors=divisors+(i, ...

  10. ASP.NET MVC 5 基本构成

    MVC模式简介: MVC模式两种理解:一种是表现模式,另外一种是架构模式.它将应用程序分成三个主要组件即:视图(View)控件器(Controller)模型(Model) M: Model主要是存储或 ...