天天看点

Linux:grep和管道符

作为和awk、sed齐名的grep文本操作,学好grep是很有必要的,当然,管道符也很重要

grep

grep作用是在文件中提取和匹配符合条件的字符串行。

grep [选项] “搜索内容” 文件名

选项:

  • -i 忽略大小写
  • -n 输出行号
  • -v 反向查找
  • –color=auto 搜索出的关键字用颜色显示

find

find:用于搜索符合条件的文件名,如果需要模糊查询,可以使用通配符,-regex选项也支持正则(equals)

grep:用于在文件中搜索符合条件的字符串,如果需要模糊查询,可以使用正则(contains)

用于匹配文件名,完全匹配

  • ? 匹配一个任意字符
    • 匹配0个或者任意多个字符
  • [] 匹配括号中的任意一个字符,如[ab],或者是a,或者是b
  • [-] 匹配括号中任意一个字符,-代表一个范围,[a-z]代表匹配一个小写字母
  • [^] 逻辑非,表示匹配不是括号内的一个字符,[^0-9]代表匹配一个不是数字的字符

通配符

用于匹配字符串

  • ? 匹配前一个字符重复0次,或一次
    • 匹配前一个字符重复0次,或任意多次(只写一个字符加星号,是没有意义的)
  • [] 匹配括号中的任意一个字符,如[ab],或者是a,或者是b
  • [-] 匹配括号中任意一个字符,-代表一个范围,[a-z]代表匹配一个小写字母
  • [^] 逻辑非,表示匹配不是括号内的一个字符,[^0-9]代表匹配一个不是数字的字符
  • ^ 匹配行首
  • $ 匹配行尾

管道|

命令格式:

命令1 | 命令2

表示 命令1的正确输出作为命令2的操作对象。有点像find命令中的-exec选项

管道符是文本流,命名1的运行结果保存在临时文件中。(简单理解)

举例:分屏显示/etc下面的文件

ll /etc | more
显示/etc/下面所有包含yum的文件

ll /etc | grep yum
显示具体网络连接数量

netstat -an | grep -i established |  wc -l
           

继续阅读