grep 与条件_Linux三剑客之GREP

GREP

grep 指令用于查找内容包含指定的范本样式的文件

类似于sql: grep=select * from table like '%xx’

命令形式: grep [OPTIONS] PATTERN [FILE..]

参数

  • -v 显示不被 pattern 匹配到的行
  • -i 忽悠字符大小写
  • -n 显示匹配的行号
  • -c 统计匹配到的行数
  • -o 仅显示匹配到的字符串
  • -E 使用ERE ,相当于
  • egrep实战:
  • 查询文件中包含root的行数
grep -nv root test.txt
  • 查找文件内容中不包含root的行
grep -nv root test.txt
c9a083b67a17f60ab91d8d7a1d33b8ea.png

测试文件的内容

a638bf612d130f608f78aa0524db198c.png
  • 查找以r开头的行
grep -n $t root test.txt
  • 查找以t结尾的行 通过正则表达式可以拼接成更强大的内容
grep -n $t root test.txt
2bcd7f77064d229ca327fd15d5cb672a.png

使用选项 -R, -r, --recursive 会递归指定目录下的所有文件,并匹配其内容:

e600c2a2374d7b69b0f126740f7602d0.png
b3b21b08ecc0c8cadc2a41d8def4796d.png

通过 -d recurse 选项可以实现同样的功能:

7e1b74076e9d3dfe1e131aabe99556af.png

反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。

查找文件名中包含 test 的文件中不包含root的行,此时,使用的命令为:

grep -v root *test*
0a9645b92dd3f0a9b8b0e7f273186511.png

查询当前目录下不包含root的行

$ grep-v root* #查找文件名中包含test r 的行  
b2a4c572eb859047f83d949742ba2a08.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值