正则介绍_grep

正则介绍_grep(上)

正则介绍

  • 正则就是一串有规律的字符串
  • 掌握好正则对编写shell脚本有很大帮助
  • 各种编程语言中都有正则,原理是一样的
  • 常用的工具有grep/egrep、sed、awk

grep

过滤指定的关键词,格式为:grep [-cinvABC] '关键词' filename

-c:表示打印符合要求的行数

020425_iLY5_3708406.png

020624_4mp7_3708406.png

020550_LL0J_3708406.png

-n:表示输出符合要求的行及行号

020728_g8wV_3708406.png

-i:不区分大小写

021419_dBDn_3708406.png

021438_RCU8_3708406.png

不加i,不显示第2行

021508_rkVs_3708406.png

加上i,就显示修改过的大写字母

021523_3CAR_3708406.png

-v:取反,打印不符合要求的行

021653_rpdS_3708406.png

-r:遍历所有子目录

022439_ifnn_3708406.png

匹配所有带root的文件

022711_mRd4_3708406.png

022517_smDr_3708406.png

022752_QMo5_3708406.png

 -A :后面跟一个数字,过滤出符合要求的行以及下面n行

023417_94WG_3708406.png

023341_s7Ng_3708406.png

-B:后面跟一个数字,过滤出符合要求的行以及上面n行

023551_zgcI_3708406.png

-C:后面跟一个数字,过滤出符合要求的行以及上下各n行

023607_SewS_3708406.png

grep(中)

grep用法

  • grep '[0-9]':表示过滤出包含数字的所有行

025425_W1eM_3708406.png

  • grep v '[0-9]':表示过滤出不包含数字的所有行

025751_x7KG_3708406.png

# vim /etc/inittab,:set nu可查看行数

025850_9Dse_3708406.png

  • grep -v '^#':表示过滤掉所有已#开头的行,^表示以什么开头

034159_uOtE_3708406.png

034224_0RQe_3708406.png

  • grep  '[^0-9]':表示过滤掉所有数字,^在中括号里表示非的意思

040020_uAk4_3708406.png

  • grep  -n '^[^0-9]':表示过滤出以非数字开头的行和行号

041055_wdWF_3708406.png

  • grep  -nv '^[^0-9]':表示过滤出以数字开头的行和行号

041026_tIkr_3708406.png

grep(下)

  • grep 'r.o':表示过滤出任意的一个字符, . 表示任意一个字符

041914_QoQV_3708406.png

  • grep 'o*o':表示过滤出零个到多个o(*前面的字符)

042450_2C0i_3708406.png

  • grep '.*':表示过滤出任意字符

042711_v8Pp_3708406.png

实例用法:

042940_z2mR_3708406.png

  • grep 'o\ {2\ }' :表示过滤出指定字符出现的次数,{}可以是一个范围,如'o\ {0,3\ }'

044039_XHzL_3708406.png

还有两种表示方法:egrep 'o{2 }'   grep -E 'o {2 }'

044247_jA9U_3708406.png

  • grep 'o+o':表示过滤出1个到多个o(+前面的字符)

044643_qwGN_3708406.png

  • grep 'o?t':表示过滤出零个到1个o(?前面的字符)

044944_Vfwi_3708406.png

  • grep -E 'root|nologin' ,|表示或者的意思

045419_Huzl_3708406.png

总结:

. 表示任意一个任意字符

 * 表示零个或多个*前面的字符

.* 表示通配,所有的都匹配

{} 表示范围,{}花括号前面字符的一个范围

+表示一个或多个+号前面的字符

?表示0个或一个问号前面的字符

|表示或者

 

转载于:https://my.oschina.net/u/3708406/blog/1576404

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值