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

正则表通常被用来检索、替换那些符合某个模式(规则)的文本,为了提取对自己有用的信息,由命令解释执行;而通配符和命令是同一级别,为了提示处理效率,直接由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中,使用可视化拷贝(剪切)粘贴文本

    1  定位光标到你想要开始剪切的位置 2 按v选择字符(按V是选择整行) 3 移动光标到你想要结束剪切的位置 4 按d是为了剪切(按y是为了拷贝) 5 移动光标到你想要粘贴的位置 6 按P是在光标之前 ...

  2. 测试工作中ADB命令实战

    作者:TT,<测试架构师>微信公众号作者 大家能点击进来,说明还是对ADB有所了解或听说过的,可能也会比较熟练的掌握了这些命令,下面描述如有不对的地方,欢迎指正和交流学习,请多指教! 一. ...

  3. 【排序算法】快速插入排序算法 Java实现

    基本思想 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部插入完成. 设数组为a[0...n-1] 初始时,a[0]自成一个有序区,无序区为a[1...n-1] ...

  4. Spring 数据源

    1.使用org.springframework.jdbc.datasource.DriverManagerDataSource说明:DriverManagerDataSource建立连接是只要有连接就 ...

  5. Docker存储驱动之OverlayFS简介

    简介 OverlayFS是一种和AUFS很类似的文件系统,与AUFS相比,OverlayFS有以下特性: 1) 更简单地设计: 2) 从3.18开始,就进入了Linux内核主线: 3) 可能更快一些. ...

  6. 【Harmony】概述

      原文来自本人的微信公众号文章  系统工程实验室     引言 基于模型的系统工程(简称MBSE,英文全称Model based System Engineering )的实践至少需要三个维度的支撑 ...

  7. php 与redis 结合 使用predis

    分为2步骤 1.下载predis 2.使用predis,让php与redis进行通信 <?php require('autoload.php'); $redis = new Predis\Cli ...

  8. 关于vue-clidown到本地后,拷贝文件库到另外一台电脑上npm run dev编译报错的处理

    这些天自己在用vue-cli项目,在家里的电脑下下来后写了一些demo,拿到公司继续开发的时候发现删除node_modules文件,运行npm install和npm run 百度,搜狗了好久都没有找 ...

  9. Spring Data JPA 简单查询--接口方法

    一.接口方法整理速查 下表针对于简单查询,即JpaRepository接口(继承了CrudRepository接口.PagingAndSortingRepository接口)中的可访问方法进行整理.( ...

  10. HTML5学习笔记<五>: HTML表单和PHP环境搭建

    HTML表单 1. 表单用于不同类型的用户输入 2. 常用的表单标签: 标签 说明 <form> 表单 <input> 输入域 <textarea> 文本域 < ...