grep学习

grep是一个文本查找工具,可以将grep后面所需要查找的信息所在的一行全部打印出来。

如:

vi TestFileOut.sh

#!/bin/bash

if grep hi TestFile

then

    echo "found"

else

    echo "not found"

创建一个文件并写入内容:

cat > TestFile

hi you are

i am your good friend

crtl + c中断保存。

给TestFileOut.sh赋予可执行的权限

chmod +x TestFileOut.sh

 执行:./TestFileOut.sh

执行结果是:hi you are

 解释:就是将有hi的那一行的数据全部打印出来。

-I :忽略大小写 
-c :打印匹配的行数 
-l :从多个文件中查找包含匹配项 
-v :查找不包含匹配项的行 
-n:打印包含匹配项的行和行标 

2、RE(正则表达式) 
忽略正则表达式中特殊字符的原有含义 
^ 匹配正则表达式的开始行 
$ 匹配正则表达式的结束行 
< 从匹配正则表达式的行开始 
> 到匹配正则表达式的行结束 
[ ] 单个字符;如[A] 即A符合要求 
[ - ] 范围 ;如[A-Z]即A,B,C一直到Z都符合要求 
. 所有的单个字符 
* 所有字符,长度可以为0 

grep后面可以跟正则表达式,进行正则匹配。对于所有的用户来说都可以进行grep查找。

使用案例:

cat TestFile | grep 'h'     输出:hi you are

cat TestFile | grep 'i'      输出: hi you are i am your good friend

cat TestFile |grep '[a-x]' 输出:输出的是TestFile中a到x的所有可以匹配的字母

grep 'b' 单个字符 表示是符合单个字符的情况  grep 'init' /etc

grep '^root' /etc/group 匹配正则表达式的开始行

cat TestFile | grep -I 'i'   表示是不区分大小写的显示所有包含i的行

cat TestFile | grep -c 'i'  表示是统计出包含 i 的行数

cat TestFile | grep -v 'good'  表示显示出不包含good的行的值

原文地址:https://www.cnblogs.com/yongxingg/p/3664159.html