20150827-Y1506401-19+benz2015+正则表达式

一、作业(练习)内容:

1、总结本此课程中所涉及命令的使用方法及相关示例展示;

chmod:修改文件权限

示例:

chmod go=rwx /usr/local/nginx/conf/nginx.conf

chmod a-x /usr/local/nginx/conf/nginx.conf

chmod 777 /usr/local/nginx/conf/nginx.conf

chown:修改文件属主、属组

示例:

chown centos:centos /usr/local/nginx/conf/nginx.conf

chgrp:修改文件属组(chown可以满足修改要求)

umask:遮罩码

新建目录权限为777-umask

新建文件权限为666-umask(若某个用户创建的文件通过算法得出的结果有执行权限,此时会自动让权限+1,默认创建的文件无执行权限)

查看umask码,直接使用umask,root默认umask为0022

linux文本处理三剑客:

grep:文本过滤

sed:文本编辑器(行)

awk:文本报告生成器

2、总结基本正则表达式及扩展正则表达式

正则表达式分为基本正则表达式和扩展正则表达式,使用过程中大部分是一样的

元字符:字符不代表其字面意义,而用于表达通配或控制功能。正则表达式在匹配过程中采用的是贪婪模式,即尽可能多的匹配内容

基本正则表达式

常用元字符:

.:匹配任意单个字符

[]:匹配指定范围内的任意字符

[^]:匹配指定范围内的任意字符

.* :任意长度的任意字符

次数匹配:

用于尧指定其次数的字符的后面

* :任意次数

\? :0或1次

\+ :1或多次

\{m\} :精确限制为m次

\{m,n\} :m≤次数≤n

\{0,n\} : 次数≤n

\{m,\} :m≤次数

位置锚定:

^ :行首锚定,用于模式的最左侧

$ :行尾锚定,用于模式的最右侧

\< 或 \b :词首锚定,用于单词的模式左侧

\> 或 \b :词尾锚定,用于单词的模式右侧

^$ :空白行

分组:

分组的小括号中的模式匹配到的内容,会在执行过程中被正则表达式引擎记录下来,并保存内置变量中,这些变量分别是\1 \2 ……

后向引用:

使用变量引用前面的分组括号中的模式所匹配的字符

3、显示/etc/passwd文件中以bash结尾的行

# grep bash$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
centos:x:500:500::/home/centos:/bin/bash
redhat:x:501:501::/home/redhat:/bin/bash

4、显示/etc/passwd文件中的两位数或三位数

# grep --color=auto ‘\<[0-9]\{2,3\}\>‘ /etc/passwd

5、显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行

# netstat -tan | grep ‘LISTEN[[:space:]]*$‘

6、添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行

grep ‘^\b\([[:alnum:]].*\)\b.*\1$‘ /etc/passwd

7、显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)

cat /etc/passwd | grep ‘^\(\broot\b\|\bcentos\b\|\buser1\b\)‘| cut -d: -f1,3,7

8、找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行

cat /etc/rc.d/init.d/functions | grep ‘[[:alpha:]]\+\>()‘

9、使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名

echo /usr/local/tomcat/conf/server.xml | egrep -o ‘[^/]+/?$‘

echo /usr/local/tomcat/conf/server.xml | egrep -o ‘.*/‘

10、找出ifconfig命令执行结果中1-255之间的数字

暂无

时间: 2024-08-22 05:15:05

20150827-Y1506401-19+benz2015+正则表达式的相关文章

剑指offer——面试题19:正则表达式匹配

1 #include"iostream" 2 using namespace std; 3 4 bool MatchCore(char*str,char* pattern); 5 6 bool Match(char* str,char* pattern) 7 { 8 if(str==nullptr||pattern==nullptr) 9 return false; 10 return MatchCore(str,pattern); 11 } 12 13 bool MatchCore(

【剑指offer】19、正则表达式匹配 &amp;&amp; 【Leetcode】44、Wildcard Matching

题目一 请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个模式.例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 思路 用动态规划来解决 规定 若,则str[0~i-1]和pattern[0~j-1]匹配 1.当p[j

面试题19:正则表达式//TODO题读不明白

1.题目描述: 请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个模式.例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配. 2.思路: 3.代码: 原文地址:https://www.cnblogs.com/guoyu1

手机号码 正则表达式

代码如下: 1 package TestRegex; 2 3 import java.util.regex.Matcher; 4 import java.util.regex.Pattern; 5 6 public class Test01 { 7 /** 8 * 手机号码正则表达式:"^[1][3,5,7,8][0-9]\\d{8}$" 9 * ^:正则开始 10 * $:正则结束 11 * [1]:手机号码第一个数必须为1 12 * [3,5,7,8]:手机号码第二个数必须为:括号

js正则表达式的使用姿势

1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title></title> 7 <!--1.引入jq库--> 8 <script type="text/javascript" src="../js/common/jquery.js"></script> 9

DAY 19

==================================== 第19天 周4 20180802 授课老师-李泳谊 作者: 邢永胜 ==================================== awk扩展 awk '条件{动作}' 条件 NR==3 或 NR>=3 找出什么样的行 动作 命令 print ifconfig eth0 | awk 'NR==2{print $2}' ifconfig eth0 | awk -F '[: ]+' 'NR==2{print $4}'

Java正则表达式java.util.regex类的简单使用

1.什么是正则表达式? 正则表达式(regular expression)是根据字符串集合内每个字符串共享的共同特性来描述字符串集合的一种途径.正则表达式可以用于搜索.编辑或者处理文本和数据. Java.util.regex主要包含以下三类: pattern类: pattern 对象是一个正则表达式的编译表示.Pattern 类没有公共构造方法.要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象.该方法接受一个正则表达式作为它的第一个参数. Ma

22个HTML5的初级技巧

Web技术的发展速度太快了,如果你不与时俱进,就会被淘汰.因此,为了应对即将到来的HTML5,本文总结了22个HTML5的初级技巧,希望能对你进一步学习好HTML5会有所帮助. 1. 新的Doctype声明 XHTML的声明太长了,我相信很少会有前端开发人员能手写出这个Doctype声明. HTML5的Doctype声明很短,看到这个声明相信你马上就能记住,不用浪费脑细胞去记那长的有点变态的XHTML的Doctype声明了. HTML5的简短的DOCTYPE声明是让Firefox.Chrome等

扣响C#之门笔记-第十九章

19.1 sting 类 sting 类的基础用法: (1).NET为sting设计了索引器,因此可以像数组那样访问字符串: (2)Length属性表示字符串长度(是string类唯一的属性) (3)"="运算符将元字符串的引用,传递给目标字符串,从而使两个变量指向同一个字符串: (4)字符串不可改变,当我们改变字符串的值时,系统会为字符串重新分配引用空间,并将值放进去:(因此不会影响原引用地址的内容) (5)string.Copy用于复制字符串内容,(直接复制值,非引用地址) (6)