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

正则表通常被用来检索、替换那些符合某个模式(规则)的文本,为了提取对自己有用的信息,由命令解释执行;而通配符和命令是同一级别,为了提示处理效率,直接由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. vim编译安装+lua模块

    vim编译安装+lua模块 使用背景:代码自动补全插件,需要安装lua模块 安装准备,首先下载安装vim所依赖的其它安装包,ncurses,lua,readline,vim 源码下载,编译安装 ncu ...

  2. barmanager工具栏及gridcontrol部分属性设置

    1.工具栏部分属性设置,如:右键菜单,禁止移动等   2.gridControl属性设置,如选中行颜色,禁止移动隐藏等      

  3. 做一款直播类app

    ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...

  4. 走进javascript——不起眼的基础,值和分号

    值 有时我很想知道javascript解析引擎是如何区分一个变量的值,比如下面这段代码. var x = 'javascript'; //javascript x = "hello" ...

  5. ios用户体验

    如果转载此文,请注明出处:http://blog.csdn.net/paulery2012/article/details/25157347,谢谢! 前言: 本文是在阅读<ios用户体验> ...

  6. FineUIMvc随笔 - 怎样在控件中嵌套 HTML

    声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 用户需求 有网友在<FineUI总群1>问这么一个问题:怎么把 HTML 嵌套在控件中? 这是很多刚学习 FineU ...

  7. Swift 包管理器命令行使用

    1.swift -version //swift 版本查看 2.swift build //swift工程编译 3.swift package generate-xcodeproj //创建Xcode ...

  8. 使用grunt实现web自动化

    1.grunt作用        实现压缩.编译.单元测试等重复性工作 2.需要安装的软件          第一步:从官网获取nodejs的软件包,直接双击进行安装(windows下) 第二步:打开 ...

  9. Html5 基础----列表详述

    html5列表 标签 列表分为:  有序列表/无序列表/自定义列表,用的最多的为无序列表和自定义列表 1.有序列表(order list) eg:把

  10. Nginx+IIS+Redis 处理Session共享问题 2

    接下来主要说下利用nginx来测试 两台Windows server 1.10.120.131.210 -  端口84部署demo 2.10.120.131.211 -  端口84部署demo ngi ...