一、需求
從一個很大的文件里查找某個關(guān)鍵詞,并獲取其前后的n行內(nèi)容
二、實現(xià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 后面跟阿拉伯數(shù)字
-A 返回匹配后和它后面的n行,(After,之后)。
-B 返回匹配行和它前面的n行,(Before,之前)。
-C 返回匹配行和它前后各n行,通-A和-B聯(lián)用,(Context,上下文即前后)。
1、返回匹配關(guān)鍵詞的前后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、返回的匹配關(guān)鍵詞的前后n行的內(nèi)容寫入文件
? ? ? ? grep -C 10? 'test' test.txt???> test1.txt
5、返回匹配關(guān)鍵詞(不區(qū)分大小寫)的前后n行的內(nèi)容
????????grep -C -i 10? 'test' test.txt?
6、返回匹配關(guān)鍵詞‘insert into `user`’的前后n行
????????grep -i -C 10 "insert into \`user\` values" test.txt > test1.txt
? ? ? ? 等同于cat?test.txt?| grep "insert into \`user\` values"?
? ? ? ? 注意:關(guān)鍵詞中包含linux中的特殊符號 反引號``,想要搜索`user`,需要使用\轉(zhuǎn)移反單引號,這樣就可以匹配字符串`user`了
7、grep還支持正則匹配哦
8、多文件中快讀查詢關(guān)鍵詞
????????grep? 'default'? *.php
9、目錄遞歸查詢關(guān)鍵詞
????????grep -r 'RequestError' */test/*.txt
? ? ? ?grep ? 'istest' /data/*/*.php
10、統(tǒng)計文件中匹配數(shù)量
grep -c '"resume_body_weight":null' 20230914.txt
或者文章來源:http://www.zghlxwxcb.cn/news/detail-580591.html
?grep -c \"resume_body_weight\":null 20230914.txt?文章來源地址http://www.zghlxwxcb.cn/news/detail-580591.html
到了這里,關(guān)于Linux grep從文件中查詢關(guān)鍵詞并返回其前后n行的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!