环境准备
[root@shang:~]# cat 1.txt
zhang
zhangshan
3
li
4
wang
5
AbCdE
dddd2345
[root@web02:~]# cat 2.txt
shang1
shang2
acbd
123
grep:
常见格式:
grep 参数 '字符串' file
常用参数:
-i #忽略大小写
[root@shang:~]# grep -i a 1.txt
zhang
zhangshan
wang
AbCdE
-v #反向匹配,只输出不匹配的行
[root@shang:~]# grep -v a 1.txt
3
li
4
5
AbCdE
dddd2345
-w #只匹配整个单词,而不是单词的一部分
[root@shang:~]# grep -w zhang 1.txt
zhang
-n #在每行输出显示的行号
[root@shang:~]# grep -n a 1.txt
1:zhang
2:zhangshan
6:wang
-c #仅输出匹配的行数
[root@shang:~]# grep -c a 1.txt
3
-l #只输出包含匹配项的文件名
[root@shang:~]# grep -rl shang1 .
./2.txt
-r #递归搜索指定目录下的所有文件
[root@shang:~]# grep -r shang2 ./
./2.txt:shang2
-E或egrep #使用拓展正则表达式语法
[root@shang:~]# grep -E 'shang1|12' 2.txt
shang1
123
[root@shang:~]# egrep 'shang1|23' 2.txt
shang1
123
-F #将模式视为固定字符串而不是表达式
[root@shang:~]# grep -F shang1 2.txt
shang1
-o #是一个非常有用的命令选项,用于匹配文本中仅输出的部分,而不是整个行或文件
[root@shang:~]# grep -o shang 2.txt
shang
shang
[root@shang:~]# head -2 2.txt
shang1
shang2
-A<num> #表示显示匹配行后num文本
[root@shang:~]# grep -A2 shang2 2.txt
shang2
acbd
123
-B<num> #表示显示匹配行前num文本
[root@shang:~]# grep -B2 123 2.txt
shang2
acbd
123
-C<num> #表示显示匹配行前后num文本
[root@shang:~]# grep -C2 li 1.txt
zhangshan
3
li
4
wang
评论