您的位置:首页 > 运维架构 > Linux

基于linux的正则表达式以及工具的使用

2016-03-02 21:39 435 查看

1. 基础的grep

1.1 grep 主要用来检索查找文件或者输入流中特定的内容,以行为单位

基础正则中用到的特殊字符

[:alnum:] 代表了 大小写字母和数字 相当于 [a-zA-Z0-9] //常用

[:alpha:] 代表了大小写字母 相当于 [a-zA-Z] //常用`

[:digit:] 代表了数字 相当于 [0-9] //常用`

[:upper:] 代表了大写字母 相当于[a-z]//常用`

[:lower:] 代表了小写字母 相当于[a-z]//常用`

[:blank:] 代表空格键与[Tab] 按键

[:cntrl:] 代表控制按键,CR,LF ,Tab,Del

[:graph:] 代表除了空格符外的(空格符和Tab)所有按键

[:print:] 代表任何刻意被打印出来的字符

[:punt:] 代表标点符号

[:xdigit:] 代表十六进制数字类型 0-9 a-f A-F

1.2 基础正则表达式字符

^ 行首 grep ‘^#’ test.txt //查找所有以#开头的行

行尾 grep '# 行尾 grep '#’ test.txt //查找所有以#结尾的行

. 代表任意字符

* 重复零到无穷多个的前一个字符 grep ‘tt*’ test.txt //查找含有t tt ttttt 的行

\ 转义字符 ,因为^ $ . 等字符是正则本身表达式的一部分,假如需要使用这些字符需要转义才能变成普通的字符

grep ‘.’ test.txt //查找包含. 的行

[char] 匹配包含char 字符的一行数据

[a-z] 匹配包含a-z 字符中的任意一个 a ,z 可以自定义

[^list] 不包含list字符的行

{m,n} 连续n到m个的前一个 字符 {m} m个 {n,} n+个

1.3 grep [option]

-v 反向选择

-n 输出行号

–color=auto 被选中的行自动变颜色 可以组合使用

更多的内容 请 man grep

2. 扩展正则表达式 egrep

2.1 扩展正则表达式字符

+ 至少一个的前一个字符 类似 *

? 零个或者一个的前一个字符

| 或可以把命令组合起来 grep -n –color=auto ‘^# | #$’ test.txt

// 选择以#开头 或者# 结果的

(string) 找出组字符串 找出string

(string)+ 找出至少一组组字符串 找出string

3. sed 工具

主要用来读行进行增删改查的操作,可以不打开文件直接操作

sed [-nefr] [action]

sed [n1[,n2] function

function :

a add char

d delete line

i insert into the line

c replace the content of n1 ,n2

s replace like the vim :s commad

    n1,n2s/old/new/g

    s/old/new/g support grep

detail use :man sed

grep ‘test’ test.txt |sed ‘/^$/d’ //delete the line which is empty

4. awk output field

last -n 5 |awk ‘{print 1"\t"1 "\t" 3 ” username “}’

last -n 5 |awk ’ 1>2 {print1>2 {print 1 "\t" $3 ” username “}’

operation : > >= < <= == !=

5. printf : output and format

printf ‘%10s %5i \n’ $(cat test.txt)

6. diff compare the files

#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: