Grep 用法和正则表达式(一)

Grep 用法和正则表达式(一)

学习目标

       grep的用法

       为什么要学习正则表示?

       学习更多的元字符

       元字符的灵活应用

1、 grep的用法

ls | grep “查找的内容”   grep “查找的类容” | 某个文件;

grep –-version 查看grep的版本号;

cat hello.txt | grep “a” 查找出a;

grep -v “a”  test.txt 除了a,其他都查找出来;

grep -c  “a” test.txt 查看a有多少行;

   grep  - v  -c  “a” test.txt 查看除a以外的有多少行;

   grep  --color “a”  test.txt  查看所有a所在的内容;并且a以红色显示!

   grep  -n “a” test.txt 查看所有a所在的内容;并且显示行号!

   grep  -n –A 2 –-color “a” test.txt  以颜色显示包含a内容的行,并且显示包括a内容的行的下两行;

   grep  -n –B 2 –-color “a” test.txt  以颜色显示包含a内容的行,并且显示包括a内容的行的上两行;

   grep  -n –C 2 –-color “a” test.txt  以颜色显示包含a内容的行,并且显示包括a内容的行的上下两行;

  

2、 为什么要学习Regular Expression(正则表达式)

(1)   模糊、快速匹配数据串

(2)   为学习grep、awk 、 sed等文本过滤命令作铺垫

(3)   编写高级bash脚本的需要

3、 正则有哪些元字符

[] \ ^ $ . | ? * + ( )

4、 基本元字符集及其含义

                       

 

举例:

(1)^ 匹配行首

ls | grep ‘^[0-3]’ 查询出0~3开头的所有文件;

            ls | grep ‘^[^0-3]’ 查询出非0~3开头的所有文件;     

(2)$ 匹配行尾

                     cat  test.txt | grep “^[0-3]e$”  匹配0-3开头,e结尾的内容;

   (3) * 一个单字符后紧跟*,匹配0个或多个此字符;

(4)? 匹配0次或1次;

              cat test.txt | grep “^[0-9]?*”

(5) . 只匹配任意单字符

                cat test.txt | grep “5.e”

 (6)pattern \{n\}

 

两者的区别:第一个匹配:不一定匹配开头的两个数字出现;

                   第二个匹配:匹配开头的两个数字出现;

(7)pattern \{n,\}  最少出现n次

(8)pattern \{n,m\} 出现次数在n~m之间;

你可能感兴趣的:(Grep 用法和正则表达式(一))