码迷,mamicode.com
首页 > 系统相关 > 详细

2018-1-15 Linux学习笔记

时间:2018-01-15 18:55:22      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:-o   ext   strong   ecb   很多   filename   ado   编辑器   技术分享   

9.1 正则介绍grep(上)

正则就是一串有规律的字符串.在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容.

其实正则表达式,只是一种思想,一种表示方法。只要我们使用的工具支持表示这种思想那么这个工具就可以处理正则表达式的字符串,常用的工具有grep, sed, awk.

grep语法:
grep [-cinvABC] ‘word‘ filename
-c : 打印符合要求的行数
-i : 忽略大小写
-r : 遍历所有子目录
-n : 在输出符合要求的行的同时连同行号一起输出
-v : 打印不符合要求的行
-A : 后跟一个数字(有无空格都可以),例如–A2则表示打印符合要求的行以及下面两行
-B : 后跟一个数字,例如–B2 则表示打印符合要求的行以及上面两行
-C : 后跟一个数字,例如–C2 则表示打印符合要求的行以及上下各两行

9.2/9.3 grep(中)(下)

grep/egrep示例
grep -n ‘root‘ /etc/passed ----->过滤出所有包含root的行
grep -nv ‘nologin‘ /etc/passwd ----->过滤出所有不包含nologin的行
grep ‘[0-9]‘ /etc/inittab ----->过滤出所有包含数字的行
grep -v ‘[0-9]‘ /etc/inittab ----->过滤出所有不包含数字的行
grep -v ‘^ #‘ test.txt ----->把所有以‘#’开头的行去除
grep -v ‘^#‘ test.txt|grep -v ‘^$‘ ----->去除所有以‘#’开头的行和空行
grep ‘^[^a-zA-Z]‘ test.txt ----->过滤出所有不是以a-zA-A字符开头的行
grep ‘r.o‘ test.txt ----->把r和o之间有一个任意字符的行过滤出来,其中.表示任意一个字符
grep ‘oo*‘ test.txt ----->\把包含零个或多个oo字符的行过滤出来
grep ‘.*‘ test.txt -----> .把所有包含零个或多个任意字符(空行也包括)的行过滤出来****
grep ‘o{2}‘ /etc/passwd ----->过滤出包含有两个o 即‘oo‘的行
egrep ‘o{2}‘ /etc/passwd ----->过滤出包含有两个o 即‘oo‘的行
egrep ‘o+‘ /etc/passwd ----->筛选含有一个或一个以上o字符串的行
egrep ‘oo?‘ /etc/passwd ----->筛选含有零个或一个oo字符串的行
egrep ‘root|nologin‘ /etc/passwd ----->筛选出含有root或者nologin字符串的行
egrep ‘(oo){2}‘ /etc/passwd ----->筛选出含有2个oo字符串的行

注意: ^放在[]外面和里面的含义是不同的,放外面表示以..开头;放里面是取非之意,例如[^a]表示除a字符之外的字符.
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片

2018-1-15 Linux学习笔记

标签:-o   ext   strong   ecb   很多   filename   ado   编辑器   技术分享   

原文地址:http://blog.51cto.com/13517946/2061225

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!