Linuxgrep查询关键词⾸次或者最近⼀次出现的地⽅
有的时候,我们需要在应⽤⽇志中搜索关键词前后的的报错信息,但是由于应⽤的⽇志很多,我们只想查询关键词第⼀次或者最后⼀次出现的地⽅的前后⼏⾏⽇志,这是,就可以使⽤grep和管道命令处理了。
常⽤查询
先提供两个常⽤查询语句,再分析语法。以⽂件/fig为例进⾏举例。
⾸次出现位置
取出⽂件中关键词keyword⾸次出现的前2⾏:
grep -B10 "keyword" /fig | head -2
最近⼀次出现位置
在⽂件中查关键词keyword最近出现的前2⾏记录:
grep -B10 "keyword" /fig | tail -2
查询关键词所在记录
取出⽂件/fig中关键词keyword出现的所有记录及每条记录的前⼗⾏:
grep "keyword" /fig
查询关键词所在位置
语法:grep [-acinv] [-A/B/C lineNum] [--color=auto] [“keyword”] [fileName]|[head/tail -lineNum]
参数:
-a :将 binary ⽂件以 text ⽂件的⽅式搜寻数据
-c :计算到关键词keyword 的次数
-i :忽略⼤⼩写的不同,所以⼤⼩写视为相同
-n :顺便输出⾏号
-v :反向选择,亦即显⽰出没有keyword内容的那⼀⾏!
-A lineNum:输出匹配字符串后多少⾏,-A 3后三⾏
-
B lineNum:输出匹配字符串前多少⾏,-B 2前两⾏
-C lineNum:输出匹配字符串前后多少⾏,-C 2前后两⾏
–color=auto :将到的关键词部分⾼亮显⽰
keyword:关键词,即待匹配字符串
fileName:包括⽂件路径在内的⽂件名
|:管道命令符,它及其后⾯的命令可以不⽤
head/tail:head表⽰查询关键词⾸次出现的地⽅,⽽tail与之相反。其后的lineNum表⽰需要打印的⾏数,语法中前后出现两次lineNum,如果同时出现,依后⾯的为准。
功能:⽂本搜索⼯具,类似于正则表达式搜索,⽤于在⼀个⼤的⽂件中快速搜索满⾜⼀定规则的内容,查到就将关键词以某种颜⾊⾼亮显⽰。
说明:grep是Global Regular Expression Print 的缩写,分析⼀⾏的信息,若有关键词出没,就将该⾏打印出来。该命令通常与管道命令⼀起使⽤,⽤于对⼀些命令的输出进⾏筛选加⼯等等。
例1 取出⽂件/fig中包含关键词keyword的所有⾏,记录按照时间升序打印,并把到的关键字加上颜⾊⾼亮显⽰:grep --color=auto "keyword" /fig
此种打印⽅式⽤于出包含关键词的所有⾏,关键词⾼亮显⽰。
例2 取出⽂件/fig中关键词keyword所在⾏及其后1⾏的所有⾏,记录按照时间升序打印:
grep -A2 "keyword" /fig
此种打印⽅式适⽤于关键词⽐较精确、且关键词出现次数⽐较少的场景。
例3 取出⽂件/fig中关键词keyword⾸次出现的前2⾏:
grep -B10 "keyword" /fig | head -2
例4 在⽂件/fig中,查关键词keyword⾸次出现的后2⾏记录:
grep -A10 "keyword" /fig | head -2
检索关键词并把把⽇志写⼊新⽂件
搜索关键字出现的位置,并把⽇志写⼊另⼀⽂件,如果⽂件存在则覆盖其内容。
语法:grep [-acinv] [-A/B/C n] [--color=auto] [“keyword”] [fileName]|[head/tail -n] > anotherFileName
>命令表⽰覆盖写⼊,如果使⽤>>,则表⽰追加写⼊。
例5 (搜索关键字最后⼀次出现位置的前后M⾏记录,并写⼊⽂件newFile.log,如果⽂件存在则追加grep -A 10 "keyword" /fig >> newFile.log | tail -2
正则匹配到第一个关键字就停止结束语
欢迎点赞阅读,⼀同学习交流;若有疑问,请在⽂章下⽅留下你的神评妙论!以促使博⽂ ⾼质量。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论