正则表达式

  开始系统学习Linux,先从基础的来
  正则表达式
  最简单的就是grep命令,他截取的是整行的数据
  切换Linux系统语言
  LANG=en
  export LANG
  例1 搜索特定字符串
  例如搜索the这个字符串:
  grep -n 'the' filename
  如果反向选择呢?也就是说,当该行没有the这个字符串时:
  grep -vn 'the' filename
  例2 利用[]来搜寻集合字元
  如果要搜索test或taste这两个单字时,可以发现其实他们有共同的't?st'存在,这时候,可以这样来搜寻:
  grep -n 't[ae]st' filename
  其实[]里面不论有几个字元,他都代表某一个字元,所以上面例子说明了,我需要的字符串是"tast"或"test"两个字符串而已,而如果想要搜寻到有oo 的字元时,则使用:
  grep -n 'oo' filename
  如果结果包含good这个词,我们不想要g,可以在集合字元的反向选择[^]来达成
  grep -n '[^g]oo' filename
  这样'只'含有good的那个结果就不会搜索出来。但是如果一行包含'good'和'tool'的话,还是会被搜索出来。
  含有goooooole 这样的结果也会被搜索出来,因为可能是(ooo)的情况。
  再假设oo前面不想有小写字母,就可以这样写[^abcd....z]oo,但是这样似乎不怎么方便,由于小写字元的 ASCII 上编码的顺序是连续的, 因此,我们可以将之简化为底下这样∶
  grep -n '[^a-z]oo' filename
  也就是说,当我们在一组集合字元中,如果该字元组是连续的,例如大写英文/小写英文/数字等等, 就可以使用[a-z],[A-Z],[0-9]等方式来书写,那么如果我们的要求字串是数字与英文呢? 呵呵!就将他全部写在一起,变成∶[a-zA-Z0-9]
  例如,我们要取得有数字的那一行,就这样∶
  grep -n '[0-9]' filename
  例三 行首与行尾字元 ^$:
  我们在例题一当中,可以查询到一行字串里面有 the 的,那如果我想要让 the 只在行首列出呢? 这个时候就得要使用定位字元了!我们可以这样做∶
  grep -n '^the' filename
  如果我想要开头是小写字元的那一行就列出呢?可以这样∶
  grep -n '^[a-z]' filename
  如果我不想要开头是英文字母,则可以是这样∶
  grep -n '^[^a-zA-Z]' filename
  TO BE CONTINUED...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值