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

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)所有按键

[:punt:] 代表标点符号

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

1.2 基础正则表达式字符

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

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

. 代表任意字符

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

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

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

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

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

notice 要想[a-z] 匹配 a b c d e …z 系统排序方式必须是c 排序就是根据ascii 进行的排序

locale -a 显示本地设置 看看有木有 c 和 posix 的,有了就是c排序没有的话是字典排序 即 AaBa….Zz

设置c排序,export LC_COLLATE=C 要永久改变需要添加到登陆文件中 /etc/profile

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

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

1.3 grep [option]

-v 反向选择

-n 输出行号

-E 扩转表达式(扩转表达式中 + ? {} <> 可以不转义使用)

–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" 3 ” username “}’

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

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

5. printf : output and format

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

6. diff compare the files

#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值