SHELL [正则表达式][grep][tr]

    正则表达式     

基本元字符集及其含义

^ 只匹配行首                                                         ^d                     ^$所有空行        ^.$只包含一个字符的行      [^0-9]非数字型字符

$ 只匹配行尾                                                          trouble$  以trouble结尾的所有行

* 0至多个单字符                                                    [A-Za-z]

[]  字符或序列范围                                                 [A-Za-z0-9]

\  屏蔽特殊含义                                                       $  .  ' "  * [ ]  ^ | () \ + ?

. 匹配任意单字符                                                   ...x..x..x 权限查找               [ou].*t   任意字符任意次,t结尾

pattern\{n\}  匹配前面patern出现的次数           A\{2\}B  AAB

pattern\{n\}m  至少n次

pattern\{n,m\}                                                         A\{2,\}B AAAB    A\{2,4\}B AAB AAAB AAAAB


^USER$        只含USER的行

^the        以the开头的行    ^[the]

 [tty]$         以tty结尾的行   [tty]$

.*0           0之前加任意字符   [.*0]

[iI]             大写I或i

^$         空行

^.*$        行中任意字符串

[a-z][a-z]* 至少一个字符

[^0-9A-Za-z]   非字符

[123]          1到3中一个数字

     grep   

grep [ 选项] 基本正则表达式 [文件]

调用变量时,应该使用双引号 "$MYVAR";调用模式匹配时,使用单引号

-c 只输出匹配行的计数

grep -c "48" data.f

-n 显示匹配行和行号

grep -n "48" data.f

-v 显示非匹配行

grep -v "48" data.f

精确匹配

grep "48<tab>" data.f

grep "48\>" data.f

-i 不区分大小写

grep -i "sept" data.f

正则表达式

grep '48[34]‘ data.f    48开始,3或4结尾

grep '^[^48]' data.f     行首不是48

grep '[Ss]ept' data.f   设置大小写

grep 'K...D'  data.f   匹配任意字符

grep '^[0-9]' data.f   行首已数字开始

grep '9\{3,\} data.f

grep -E '219|216' data.f   扩展模式匹配  或者 

grep '^$' myfile

   tr用法    

从标准输入中通过替换或删除操作进行字符转换

cat myfile | tr "[a-x]" "[A-Z]" > upper_myfile    小写到大写

cat myfile | tr "[A-Z]" "[a-z]" > lower_myfile        大写到小写

-s 删除所有重复出现字符序列,只保留第一个

tr -s ["\n"]  <plane.txt    去除空行

tr -s "[a-z]"    去除重复字符

tr -s "[\r]" "[\n]" < input_file  删除文件中^M,并代之以换行

tr "[0*4]" "*" <hdisk.txt 匹配至少4个0,替换成“*”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值