> 文章列表 > Linux grep从文件中查询关键词并返回其前后n行

Linux grep从文件中查询关键词并返回其前后n行

Linux grep从文件中查询关键词并返回其前后n行

一、需求

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

二、实现

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还支持正则匹配哦