码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2018-02-25 16:02:18      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:正则

正则表达式

是一串有规律的字符串

grep

grep   ‘ abc123’ filename
`- c : 行数,可以用来计数,文本里出现多少次要找的字符串
`- i  : 不区分大小写
`- n : 显示行号
`- v: 取反
`- r : 遍历子目录以下的文件,遍历目录用 -r 
`- A : 后面跟数字,过滤出符合要求的行以及下面的n行
`- B: 同上,过滤出符合要求的行以及上面的n行
`- C : 同上,同时过滤出符合要求的行以及上下各n行

元字符

 `*`         前一个字符匹配 0 次或 任意 多次(星 号前一个字符不起作用)

`.`          匹配除了换行符外  点号前面的任意 一个 字符

`+`        表示1次到多次,\+也要脱义,否则用egrep

?         ?号前面的字符匹配1或者0次,\?也要脱义,否则用egrep

$         匹配行首,列如 ^hello 会匹配以 hello 开头的行

|          表示匹配多个字符  ‘root|nologin|aaa‘

[ ]       匹配中括号指定的任意一个字符,只匹配一个字符
                例如:[0-9]匹配任意一个数字,[a-z][0-9]匹配小写字母和一位数字构成的两位字符

[^]      匹配除了中括号的字符以外的任意一个字符
                例如:[^0-9] 匹配任意一位非数字字符。
                                [^a-z] 表示任意一位非小写字符。

\         转移符,用于取消将特殊符号的含义取消

\{n\}    表示其前面的字符恰好出现n次
                   例如:[0-9]\{4\} 匹配4位数字
                                    [1][3-8][0-9]\{9\} 匹配手机号码                   

\{n,\}    表示其前面的字符出现 不小于n 次
                    例如:[0-9]\{2,\} 表示两位以及以上的数字

\{n,m\}     表示其前面的字符出现 至少n 次,最多出现 m 次。
                    例如:[a-z]\{6,8\} 匹配6到8位的小写字母

egrep = grep -E   可以免去脱义符
egrep ‘{}‘  = grep  ‘\{\}‘  = grep -E ‘{}‘

sed 文本替换

 轻量级流编辑器,主要用来将数据进行选取,替换,删除,新增
    `- r : 支持脱义

    `- n : 一般会把所有的数据输出到屏幕上,如果加入n选项,只会输出已匹配的行,一般加入p 选项print 

     `- e : 加多命令编辑

    `- i :  修改,修改已读数据文件,直接更改文件内容,sed -i  ‘1,5‘d  1.txt
动作,加在 ‘字符串‘后面的

    `- I  : 不区分大小写

 `- d : 删除指定行数 sed ‘1,10‘d 1.txt  1-10行delete 

 `- a :追加,在当前行后添加一行或者多行 

`- c  : 行替换,用c 后面的字符串替换原数据

 `- i : 插入,在当前行前插入一行或者多行。d : 删除,g : 全局

 `- p : 打印,输出指定的行

 `- s : 字串替换,用一个字符串替换另一个字符串
‘行范围s/旧字符串/新字符串/g‘  g : 表示全局,不加就表示一行

awk

awk 工具 分段匹配
    `- F 指定分割符
 $1 表示 第一段, $0 表示所有
 awk ‘{print $0}‘ 1.txt

awk ‘{print $1,$3,$7}‘ 1.txt
默认分隔符为空格,或者空白字符
 `~`  匹配 后面的字符

也支持正则
支持多个表达式一起写
    awk -F ‘:‘  ‘/root|user ‘{print $0}‘ 1.txt

数学运算
$3 > 100    大于100
$3 == 100   等于100
$3 < 100     小于100
$3 >= 100  大于等于100
$3  != 100  不等于
$3 > "5" && $3 < "7"  大于5小于7  &&与,||或
{OFS="#"} 内置变量,指定print打印用到的分割符#
{NR}   行     ‘NR<=10‘ 前10行
{NF}   段     ‘NF==6‘ 第6段
{BEGIN} {END}

正则表达式

标签:正则

原文地址:http://blog.51cto.com/13574510/2072842

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!