一、需求

从一个很大的文件里查找某个关键词,并获取其前后的n行内容

二、实现

grep -A2 2 test.txt  返回匹配行和匹配行的后两行

grep -B2 2 test.txt  返回匹配行和匹配行的前两行

grep -C2 2 text.txt 或者 grep -A2 -B2 2 test.txt 返回匹配行和匹配行的前后两行

-A -B -C 后面跟阿拉伯数字
-A 返回匹配后和它后面的n行,(After,之后)。
-B 返回匹配行和它前面的n行,(Before,之前)。
-C 返回匹配行和它前后各n行,通-A和-B联用,(Context,上下文即前后)。

1、返回匹配关键词的前后n行

        grep -10 'test' test.txt  
        grep -C 10  'test' test.txt  
 2、返回匹配字段"test123"行的前10行
        grep -B 10 'test' test.txt 
 3、返回匹配字段"test123"行的后10行
        grep -A 10 'test' test.txt 

4、返回的匹配关键词的前后n行的内容写入文件

        grep -C 10  'test' test.txt   > test1.txt

5、返回匹配关键词(不区分大小写)的前后n行的内容

        grep -C -i 10  'test' test.txt 

6、返回匹配关键词‘insert into `user`’的前后n行

        grep -i -C 10 "insert into \`user\` values" test.txt > test1.txt

        等同于cat test.txt | grep "insert into \`user\` values" 

        注意:关键词中包含linux中的特殊符号 反引号``,想要搜索`user`,需要使用\转移反单引号,这样就可以匹配字符串`user`了

7、grep还支持正则匹配哦

8、多文件中快读查询关键词

        grep  'default'  *.php

9、目录递归查询关键词

        grep -r 'RequestError' */test/*.txt

       grep   'istest' /data/*/*.php

10、统计文件中匹配数量

grep -c '"resume_body_weight":null' 20230914.txt

或者

 grep -c \"resume_body_weight\":null 20230914.txt 

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐