正则表达式

第1章 企业案例故障

实例1-1             磁盘空间不足系列:

原因                          排查过程                             解决

1.block                  df -h; du -sh /data/* 具体的文件或目录    确认之后删除     

2.block                 lsof|grep delete                           重启对应的服务

3.inode                 df -i; 找出系统中大于1M的目录              删除大量小文件

第2章 特殊符号

2.1 引号系列

2.1.1 “”          双引号

引号内的特殊符号会被解析

2.1.2  ‘’          单引号

所见即所得,输入什么就输出什么

2.1.3 ``            反引号

$()==``

2.1.4              无引号

可以使用{}

2.2 重定向系列

>标准输出重定向先把文件清空追加

>>标准输出追加重定向

2> 标准错误输出重定向

2>>

<标准输入重定向 xargs tr

<<标准输入追加重定向与cat配合追加多行内容

2>&1将错误和正确内容都记录到文件中

2.3 位置系列

~          当前用户家目录

..          上一级目录

.           当前目录

-             参数  cd – su – 

2.4 判断关系

&&     前面命令执行成功之后在执行后一个命令

||           前一个命令执行失败之后执行后一个命令

[[email protected] ~]# ls /oldboy && echo 目录已存在

ext     nginx.conf  oldboy.SH   oldboy.txt-hard  oldboy.txt-soft2  test.sh  t.sh.bak  xiaodong  xingfujie

jeacen  oldboy      oldboy.txt  oldboy.txt-soft  test              t.sh     wodi.gz   xiaofan   yingsui.gz

目录已存在

[[email protected] ~]# ls /ooooo && echo 目录已存在

ls: cannot access /ooooo: No such file or directory

 [[email protected] ~]# ls /ooooo || echo 目录不存在

ls: cannot access /ooooo: No such file or directory

目录不存在

2.5 无分类系列

#          注释说明 显示环静变量的配置文件 root用户的命令提示符

$          普通用户命令提示符      awk取列

        ls运行上一个以ls开头的命令并执行 !!运行上一个命令

|           管道符号

;           在同一行分割命令

2.6 通配符号

2.6.1 * 所有文件

1.以.conf结尾的文件

find /   -type f -name "*.conf"

2.找出系统中文件名包含ifconfig (文件名中有ifconfig就行)

方法一:

[[email protected] ~]# find /  -type f  -name "ifconfig"

/sbin/ifconfig

[[email protected] ~]#

[[email protected] ~]# find /  -type f  -name "*ifconfig*"

/usr/sbin/pifconfig

/usr/share/man/de/man8/ifconfig.8.gz

/usr/share/man/pt/man8/ifconfig.8.gz

/usr/share/man/man8/pifconfig.8.gz

/usr/share/man/man8/ifconfig.8.gz

/usr/share/man/fr/man8/ifconfig.8.gz

/sbin/ifconfig

方法二:

[[email protected] ~]# find /  -type f  |grep ifconfig

/usr/sbin/pifconfig

/usr/share/man/de/man8/ifconfig.8.gz

/usr/share/man/pt/man8/ifconfig.8.gz

/usr/share/man/man8/pifconfig.8.gz

/usr/share/man/man8/ifconfig.8.gz

/usr/share/man/fr/man8/ifconfig.8.gz

/sbin/ifconfig

2.6.2 {}           生成序列 备份

{} 生成序列

[[email protected] ~]# echo stu{01..5}

stu01 stu02 stu03 stu04 stu05

[[email protected] ~]#

[[email protected] ~]#

[[email protected] ~]# echo {1,5,100}

 

[[email protected] ~]# echo stu{01..10}

stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10

[[email protected] ~]# echo stu{01..10..2}

stu01 stu03 stu05 stu07 stu09

通过 {} 进行备份

[[email protected] ~]# cp  oldboy.txt{,.bak}

[[email protected] ~]# echo oldboy.txt{,.bak}

oldboy.txt oldboy.txt.bak

第3章 基础正则表达式

3.1 符号比较

中文 ‘’       “”     ()         *  ……      |     {}  【】

英文    ''            ""         ()           .      *  ^         $      |  {}  []

为grep配置别名

alias grep='grep --color'

alias egrep='egrep --color'

3.2 1个符号   ^  ....开头的行

模拟文件

[[email protected] /oldboy]# cat oldboy.txt

I am oldboy teacher!

I teach linux.

 

I like badminton ball,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

my qq is 49000448

 

not 4900000448.

my god,i am not oldbey,but OLDBOY!

 

第1个符号   ^

    以....开头的行 ^m

[[email protected] /oldboy]# grep '^m'  oldboy.txt

my blog is http://oldboy.blog.51cto.com

my qq is 49000448

my god,but OLDBOY!

cat -A 显示文件中所有符号  每行结尾都会有个$

3.3 2个符号  $ 显示文件结尾的行

[[email protected] /oldboy]# grep ' $'  oldboy.txt

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

3.4 3个符号^$ 显示空行

[[email protected] /oldboy]# grep '^$'  oldboy.txt

 

 

3.5 4个符号    .        任意一个字符

[[email protected] /oldboy]# #grep  '.' oldboy.txt

[[email protected] /oldboy]# grep -o '.' oldboy.txt

3.6 5个符号     \      转义字符

[[email protected] /oldboy]# grep  '\.$' oldboy.txt

I teach linux.

not 4900000448.

[[email protected] /oldboy]# tr  '\n'   '\t' <oldboy.txt

I am oldboy teacher!   I teach linux.      I like badminton ball,billiard ball and chinese chess!   my blog is http://oldboy.blog.51cto.com     our size is http://blog.oldboyedu.com   my qq is 49000448       not 4900000448. my god,but OLDBOY! [[email protected] /oldboy]#

3.7 6个符号    *     一个字符连续出现00次以上

3.8 7个符号    .* 所有符号字符 包括空行

[[email protected] /oldboy]# grep '.*' oldboy.txt

I am oldboy teacher!

I teach linux.

 

I like badminton ball,but OLDBOY!

正则中表示 连续出现或所有的时候

正则表达式有贪婪性

替你寻找的文字符号     有多少吃多少  有多少匹配多少

 

[[email protected] /oldboy]# grep '^.*o' oldboy.txt

I am oldboy teacher!

I like badminton ball,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

not 4900000448.

my god,but OLDBOY!

 

3.9 8个符号 []每次匹配一个字符

grep '[a-z]' oldboy.txt

grep '[A-Z]' oldboy.txt

grep '[0-9]' oldboy.txt

 

grep '[a-zA-Z]' oldboy.txt

grep '[a-Z]' oldboy.txt

 

grep -i '[a-z]' oldboy.txt

     -i 不区分大小写  ignore case

1.找出oldboy.txt中以m或n开头的行

[[email protected] /oldboy]# grep '^[mn]'  oldboy.txt

my blog is http://oldboy.blog.51cto.com

my qq is 49000448

not 4900000448.

my god,but OLDBOY!

2.找出oldboy.txt中以m或n开头并且以m或n结尾的行

[[email protected] /oldboy]# grep '^[mn]'  oldboy.txt

my blog is http://oldboy.blog.51cto.com

my qq is 49000448

not 4900000448.

my god,but OLDBOY!

[[email protected] /oldboy]# grep '^[mn]'  oldboy.txt|grep '[mn] $'

my blog is http://oldboy.blog.51cto.com

3.10 9个符号   [^] 每次匹配一个字符,显示出除过这个字符的所有字符

[[email protected] ~]# grep '[^ab]' oldboy.tat

I am oldboy teacher!

I teach linux.

I like badminton ball,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

my qq is 49000448

not 4900000448.

my god,but OLDBOY!

1.排除文件中的数字和大小写字母

[[email protected] /oldboy]# grep '[0-Z]' oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball,but OLDBOY!

第4章 扩展正则表达式 ERE Extented Regular Expression)

4.1 10个符号   +    前一个字符连续出现1次或1次以上

[[email protected] /oldboy]# egrep '0+' oldboy.txt

my qq is 49000448

not 4900000448.

[[email protected] /oldboy]# grep -E '0+' oldboy.txt

my qq is 49000448

not 4900000448.

[[email protected] /oldboy]# grep '0\+' oldboy.txt

my qq is 49000448

not 4900000448.

[[email protected] /oldboy]# egrep '0+' oldboy.txt -o

000

00000

1.取出连续出现的小写字母

[[email protected] /oldboy]# egrep '[a-z]+'  oldboy.txt

4.2 11个符号  |  或者

[[email protected] /oldboy]# egrep 'oldboy|linux'   oldboy.txt

I am oldboy teacher!

I teach linux.

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

1.先备份 /etc/ssh/sshd_config 然后 排除 文件中的#号的行或空行

[[email protected] /oldboy]# egrep -v '^$|#' /etc/ssh/sshd_config

Protocol 2

SyslogFacility AUTHPRIV

PasswordAuthentication yes

ChallengeResponseAuthentication no

GSSAPIAuthentication yes

GSSAPICleanupCredentials yes

UsePAM yes

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES

AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT

AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE

AcceptEnv XMODIFIERS

X11Forwarding yes

Subsystem  sftp    /usr/libexec/openssh/sftp-server

实例4-1             [^]grep -v

[^a-z]          排除按字符 某个字符 某些字符

grep -v [a-z]   排除按行

[[email protected] /oldboy]# grep '[^a-z]'  oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball,but OLDBOY!

+++++\\\\\\!!!!$$$$$$^^^

####!!!^^^^^[email protected]@@@@####

[[email protected] /oldboy]# grep -v '[a-z]'  oldboy.txt

+++++\\\\\\!!!!$$$$$$^^^

####!!!^^^^^[email protected]@@@@####

4.3 12个符号 () 表示一个整体  反向引用/后向引用

[[email protected] /oldboy]# egrep 'oldb(o|e)y'  oldboy.txt

I am oldboy teacher!

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

my god,but OLDBOY!

反向引用/后向引用

思路:把你想要的内容保护起来 ()

sed 在 's###g' 后两个井号之间使用  \数字 引用

[[email protected] /oldboy]# echo 123456

123456

[[email protected] /oldboy]# echo '<123456>'

<123456>

[[email protected] /oldboy]# echo 123456|sed -r 's#(.*)#\1#g'

123456

[[email protected] /oldboy]# echo 123456|sed -r 's#(.*)#<\1>#g'

<123456>

[[email protected] /oldboy]# echo 123456|sed -r 's#(34)#<\1>#g'

12<34>56

[[email protected] /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3#g'

56

[[email protected] /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3\2#g'

5634

[[email protected] /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3\2\1#g'

563412

[[email protected] /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3<\2\1#g'

[[email protected] /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3<\2>\1#g'

56<34>12

4.4 13个符号   {}    0{n,m}表示至少出现了n次,最多出现m

[[email protected] /oldboy]# egrep '0{3,4}' oldboy.txt

my qq is 49000448

not 4900000448.

[[email protected] /oldboy]# egrep '0{3}' oldboy.txt

my qq is 49000448

not 4900000448.

[[email protected] /oldboy]# egrep '0{3,4}' oldboy.txt

my qq is 49000448

not 4900000448.

[[email protected] /oldboy]# egrep '0{3}' oldboy.txt

my qq is 49000448

not 4900000448.

取×××号码

[[email protected] /oldboy]# cat id.txt

金 211324198705244720

万 500224197105168312

任 1231231231oldboy

任 3oldboy

任 lidao97303136098

任 alex2197303136098

任 350182197303oldgir

吕 211282199209113038

孔 150000198309176071

邹 371001197412221284

贺 130185200011215926

杜 362522198711278101

向 14052219961008852X

[[email protected] /oldboy]# egrep '[0-9X]{18}' id.txt

金 211324198705244720

万 500224197105168312

吕 211282199209113038

孔 150000198309176071

邹 371001197412221284

贺 130185200011215926

杜 362522198711278101

   XXXXXXXXXXXXXXXXXX

向 14052219961008852X

[[email protected] /oldboy]# egrep '[0-9]{17}[0-9X]' id.txt

金 211324198705244720

万 500224197105168312

吕 211282199209113038

孔 150000198309176071

邹 371001197412221284

贺 130185200011215926

杜 362522198711278101

向 14052219961008852X

4.5 14个符号前一个字符连续出现0次或1

取出网卡的ip地址

方法1

[[email protected] /oldboy]# ip a s eth0 |awk 'NR==3'|awk  -F"[ /]+"  '{print $3}'

10.0.0.200

[[email protected] /oldboy]#

取出ifconfig eth0 ip地址和子网掩码

[[email protected] /oldboy]# ifconfig eth0 |awk 'NR==2'

          inet addr:10.0.0.200  Bcast:10.0.0.255  Mask:255.255.255.0

[[email protected] /oldboy]# ifconfig eth0 |awk 'NR==2' |awk -F"[ :]+"  '{print $4,$NF}'

10.0.0.200 255.255.255.0

方法二

[[email protected] /oldboy]# ifconfig eth0 |awk 'NR==2'

          inet addr:10.0.0.200  Bcast:10.0.0.255  Mask:255.255.255.0

[[email protected] /oldboy]# ifconfig eth0 |awk 'NR==2' |awk -F"addr:|Bcast:| Mask:"  '{print $2}'

10.0.0.200  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


jquery.validate使用攻略(表单校验) 目录 jquery.validate使用攻略1 第一章&#160;jquery.validate使用攻略1 第二章&#160;jQuery.validate.js API7 Custom selectors7 Utilities8 Validato
/\s+/g和/\s/g的区别 正则表达式/\s+/g和/\s/g,目的均是找出目标字符串中的所有空白字符,但两者到底有什么区别呢? 我们先来看下面一个例子: let name = &#39;ye wen jun&#39;;let ans = name.replace(/\s/g, &#39;&#3
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母 /^[0-9a-zA-Z]*$/g jQuery.validator.addMethod(&quot;letters&quot;, function (value, element) { return this.optio
this.optional(element)的用法 this.optional(element)是jquery.validator.js表单验证框架中的一个函数,用于表单控件的值不为空时才触发验证。 简单来说,就是当表单控件值为空的时候不会进行表单校验,此函数会返回true,表示校验通过,当表单控件
jQuery.validate 表单动态验证 实际上jQuery.validate提供了动态校验的方法。而动态拼JSON串的方式是不支持动态校验的。牺牲jQuery.validate的性能优化可以实现(jQuery.validate的性能优化见图1.2 jQuery.validate源码 )。 也可
自定义验证之这能输入数字(包括小数 负数 ) &lt;script type=&quot;text/javascript&quot;&gt; function onlyNumber(obj){ //得到第一个字符是否为负号 var t = obj.value.charAt(0); //先把非数字的都
// 引入了外部的验证规则 import { validateAccountNumber } from &quot;@/utils/validate&quot;; validator.js /*是否合法IP地址*/ export function validateIP(rule, value,cal
VUE开发--表单验证(六十三) 一、常用验证方式 vue 中表单字段验证的写法和方式有多种,常用的验证方式有3种: data 中验证 表单内容: &lt;!-- 表单 --&gt; &lt;el-form ref=&quot;rulesForm&quot; :rules=&quot;formRul
正则表达式 座机的: 例子: 座机有效写法: 0316-8418331 (010)-67433539 (010)67433539 010-67433539 (0316)-8418331 (0316)8418331 正则表达式写法 0\d{2,3}-\d{7,8}|\(?0\d{2,3}[)-]?\d
var reg = /^0\.[1-9]{0,2}$/;var linka = 0.1;console.log (reg.test (linka)); 0到1两位小数正则 ^(0\.(0[1-9]|[1-9]{1,2}|[1-9]0)$)|^1$ 不含0、0.0、0.00 // 验证是否是[1-10
input最大长度限制问题 &lt;input type=&quot;text&quot; maxlength=&quot;5&quot; /&gt; //可以 &lt;input type=&quot;number&quot; maxlength=&quot;5&quot; /&gt; //没有效
js输入验证是否为空、是否为null、是否都是空格 目录 1.截头去尾 trim 2.截头去尾 会去掉开始和结束的空格,类似于trim 3.会去掉所有的空格,包括开始,结束,中间 1.截头去尾 trim str=str.trim(); // 强烈推荐 最常用、最实用 or $.trim(str);
正则表达式语法大全 字符串.match(正则):返回符合的字符串,若不满足返回null 字符串.search(正则):返回搜索到的位置,若非一个字符,则返回第一个字母的下标,若不匹配则返回-1 字符串.replace(正则,新的字符串):找到符合正则的内容并替换 正则.test(字符串):在字符串中
正整数正则表达式正数的正则表达式(包括0,小数保留两位): ^((0{1}.\d{1,2})|([1-9]\d.{1}\d{1,2})|([1-9]+\d)|0)$正数的正则表达式(不包括0,小数保留两位): ^((0{1}.\d{1,2})|([1-9]\d.{1}\d{1,2})|([1-9]+
JS 正则验证 test() /*用途:检查输入手机号码是否正确输入:s:字符串返回:如果通过验证返回true,否则返回false /function checkMobile(s){var regu =/[1][3][0-9]{9}$/;var re = new RegExp(regu);if (r
请输入保留两位小数的销售价的正则: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/ 1.只能输入英文 &lt;input type=&quot;text&quot; onkeyup=&quot;value
判断价格的正则表达式 价格的正则表达式 /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/; 1 解析:价格符合两种格式 ^ [1-9]\d*(.\d{1,2})?$ : 1-9 开头,后跟是 0-9,可以跟小数点,但小数点后要带上 1-2 位小数,类似 2,2
文章浏览阅读106次。这篇文章主要介绍了最实用的正则表达式整理,比如校验邮箱的正则,号码相关,数字相关等等,本文给大家列举的比较多,需要的朋友可以参考下。_/^(?:[1-9]d*)$/ 手机号
文章浏览阅读1.2k次。4、匹配中的==、an==、== an9、i9 == "9i"和99p==请注意下面这部分的作用,它在匹配中间内容的时候排除了说明:当html字符串如下时,可以匹配到两处,表示匹配的字符串不包含and且不包含空白字符。说明:在上面的正则表达式中,_gvim正则表达式匹配不包含某个字符串
文章浏览阅读897次。【代码】正则表达式匹配a标签的href。_auto.js 正则匹配herf