正则表达式(一)

正则表达式(一)



正则表达式是处理字符串的一种表示方式,而不是字符串处理工具

常见的特殊符号:
[:alnum:] 代表英文及数字,即0-9,A-Z,a-z
[:alpha:] 代表英文,即A-Z,a-z
[:digit:] 代表数字,即0-9 
[:lower:] 代表小写,即a-z
[:upper:] 代表大写,即A-Z 

grep:分析文件中的每一行数据,取出我们想要的部分

一、基本操作

1、语法 grep [-acinvAB] [--color=auto] '搜寻字符串' filename
       -a:将二进制文件以text文件的方式搜寻数据
       -c:计算找到'搜寻字符串'的次数
       -i:忽略大小写
       -n:输出行号
       -v:反选
       -A:后面可以加数字,为after的意思,除了列出该列外,后续n行业列出
       -B:后面可以加数字,为before的意思,除了列出该列外,前面n行业列出
       --color=auto:可以将找到的关键词部分加上颜色显示出来
2、范例:
    一、基本练习:
     a、将 last 当中,有出现 root 的哪一行取出来
      last | grep 'root'
     b、与a范例取反
        last | grep -v 'root' 
     c、
要将捉到的关键词显色,且加上行号来表示
        dmesg|grep -n --color=auto 'eth'
     d、承上题,在关键词所在行的前两行不后三行也一起捉出来显示

        dmesg|grep -A3 -B2 -n --color=auto 'eth'  

     e、从regular_express.txt文件当中取得 the 这个特定字符串
        grep -n 'the' regular_express.txt 

    二、利用中括号[]来搜寻集合字符
     a、搜寻test和taste这两个单词
 
grep -n 't[ae]st' regular_express.txt 说明:其实[]里面无论有几个字符,他都只代表某『一个』字符
     b、不想要oo前面有g的话呢,可以利用在集合字符的反向选择 [^] 
grep -n '[^g]oo' regular_express.txt 
     c、
oo 前面不想要有小写字符
 
grep -n '[^a-z]oo' regular_express.txt 
     d、要叏得有数字的那一行 

grep -n '[0-9]' regular_express.txt  

或者 grep -n '[[:digit:]]' regular_express.txt 

    三、行首不行尾字符 ^ $
     a、查询
the只在行首的列
grep -n '^the' regular_express.txt
     b、
我想要开头是小写字符的那一行  
grep -n '^[a-z]' regular_express.txt  
     c、
那如果我不想要开头是英文字母
 
grep -n '^[^a-zA-Z]' regular_express.txt 
     d、
行尾结束为小数点 (.) 的那一行 
 
grep -n '\.$' regular_express.txt小数点有特殊意义,所以要转意
     e、搜索空白行
 
grep -n '^$' regular_express.txt 
    四、 
任意一个字符 . 不重复字符 *
 
    . (小数点):代表『一定有一个任意字符』的意思
     * (星星号):代表『重复前一个 0 到无穷多次』的意思,为组合形态 
     a、查询 起头是 g 而结束是 d ,中间必须有两个字符哪行
grep -n 'g..d' regular_express.txt 
     b、
至少两个 o 以上的字符串
grep -n 'ooo*' regular_express.txt 说明:o*代表的是:拥有空字符或
一个 o 以上的字符,特别注意,因为空字符(就是有没有字符都可以的意思)
     c、得到我们的g....g,就利用任意一个字符“.
grep -n 'g.*g' regular_express.txt 
     d、找出有数字的行
grep -n '[0-9][0-9]*' regular_express.txt 
    五、限定范围{}
     a、
找到两个 o 的字符
grep -n 'o\{2\}' regular_express.txt 
     b、
找出 g 后面接 2 到 5 个 o
 
  grep -n 'go\{2,5\}g' regular_express.txt 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值