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 \n 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的行的值