linuxgrep命令常见⽤法在 linux 系统中,有三个强⼤的⽂本分析处理⼯具:grep  sed  awk,其中:
grep  ⽤于搜索⽂本内容      =>
sed    ⽤于编辑⽂本内容      =>
awk  ⽤于处理和⽣成报表    =>
grep 的⼯作原理是将⽂件内容逐⾏读⼊,然后在每⼀⾏数据中搜索符合条件的内容并打印出来
grep 命令的使⽤格式如下:
grep  “pattern”  file_name
在⽂件中搜索符合样式  pattern  的内容,并打印出来
这⾥的 pattern ⼀般是正则表达式,也可以是字符串(字符串也可以看成是⼀种简单的正则表达式)
下⾯结合实例简单介绍 grep 命令的常见⽤法:
假设⽂件 的内容如下:
running syntax check ...
checked 100 lines,2 have errors
error: nothing matched !
error: cannot open the target !
syntax check finished!
1. 搜索出包含字符 error 的⾏
grep  error 
>>
checked 100 lines,2 have errors
error: nothing matched !
error: cannot open the target !
如果希望将搜索到的⽬标⾼亮出来,可以加上选项 “--color=auto”
grep  --color=auto  error 
>>
checked 100 lines,2 have error s
error: nothing matched !
error: cannot open the target !
为了⽅便,可以将这个选项添加到⾃⼰的 alias ⽂件中:
alias  grep"grep  --color=auto"
2. 搜索以 error 开头的那些⾏
grep"^error" 
>>
error: nothing matched !
error: cannot open the target !
这⾥的 "^error" 是正则表达式,符号 "^" 表⽰⼀⾏的开头
注意正则表达式需要⽤双引号括起来,但是如果 pattern 是简单的字符串(⽐如 “error”),则可以省略双引号
3. 统计⽂件 中字符 error 出现的次数
grep  -c  error 
>>
3
注意:如果⼀⾏中有多个 error 字符,只会统计⼀次
4. 搜索不包含字符串 error 的那些⾏
grep  -v  error 
>>
running syntax check ...
syntax check finished!
选项 “-v ” 表⽰反转搜索
5. 在⽬录下的所有⽂件中搜索
grep  -r  error  log
这⾥的 log 是⼀个⽬录,表⽰在⽬录 log 和 log 的⼦⽬录下的所有⽂件中搜索字符串 error
6. 搜索 “在⽂件 A 中存在,但是在⽂件 B 中不存在” 的那些⾏
⽂件 的内容如下:
data[1]
data[2]
data[3]
data[4]正则匹配多行
data[5]
⽂件 中的内容是:
data[1]
data[3]
data[4]
假设需要搜索 “在⽂件 中存在,但是在 中不存在” 的那些⾏
grep  -f    -vF 
>>
data[2]
data[5]
这⾥的 -f 表⽰ “将⽂件的内容作为样式”,也就是将⽂件中的每⼀⾏都作为样式去搜索
⽽选项 -F 表⽰ “将样式当作⽂本,⽽不是正则表达式”,默认情况下, grep 会将 中的每⼀⾏当作⼀个正则表达式,然后
去 中查是否有匹配这些正则表达式的内容,所以  "data[1]" 如果被视为正则表达式,就只能搜索到包含 “data1” 的那些⾏,因为正则表达式 “[1]" 就表⽰数字 1 ;
所以上⾯这条命令就表⽰:将 中的每⼀⾏当做常规字符串,去 中搜索是否有有相同的字符串,如果有,就排除掉,最后打印出 中剩下的⾏。
⽅法2: cat      | sort  | uniq -u
其中 uniq -u 表⽰只打印那些不重复的⾏
grep 命令的⽤法还有很多,以上只是列举了⼀些常见的⽤法,
如果希望深⼊学习,可以参考相关书籍或者直接访问 GNU grep ⽹站:
|--------------------------------------|

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。