[关闭]
@yangwenbo 2023-02-14T15:45:35.000000Z 字数 1114 阅读 238

Linux三剑客

grep的过滤使用

  • grep参数
    -e: 使用正则搜索
    -i: 不区分大小写
    -v: 查找不包含指定内容的行
    -w: 按单词搜索
    -c: 统计匹配到的次数
    -n: 显示行号
    -r: 逐层遍历目录查找
    -A: 显示匹配行及前面多少行, 如: -A3, 则表示显示匹配行及前3行
    -B: 显示匹配行及后面多少行, 如: -B3, 则表示显示匹配行及后3行
    -C: 显示匹配行前后多少行, 如: -C3, 则表示显示批量行前后3行

已知文件yangwenbo里有以下内容

  1. [root@yangwenbo /]# cat yangwenbo
  2. yuni
  3. yunwei
  4. YUNWEI
  5. YWEI
  6. yunjijsuan
  7. yunsuan
  8. YUNJISUAN

1. 只显示匹配的内容

  1. [root@yangwenbo /]# cat yangwenbo | grep -o yunwei
  2. yunwei

2. 忽略大小写

  1. [root@yangwenbo /]# cat yangwenbo | grep -i yunwei
  2. yunwei
  3. YUNWEI

3. 目标排序

  1. [root@yangwenbo /]# cat yangwenbo | grep -in yunwei
  2. 2:yunwei
  3. 3:YUNWEI

4. 精确匹配

1.输入错误

  1. [root@yangwenbo /]# cat yangwenbo | grep -w yunwe
  2. [root@yangwenbo /]#

2.正确输入

  1. [root@yangwenbo /]# cat yangwenbo | grep -w yunwei
  2. yunwei

5. 排除某个文件输出其它

  1. [root@yangwenbo /]# cat yangwenbo | grep -v yunwei
  2. yuni
  3. YUNWEI
  4. YWEI
  5. yunjijsuan
  6. yunsuan
  7. YUNJISUAN

6. 递归查询

如何在Linux中通过子目录递归使用Grep命令?

1.已知

  1. [root@redis02 ~]# tree 1
  2. 1
  3. ├── 2
  4.    ├── 2
  5.       ├── 236.txt
  6.       └── ywb.txt
  7.    ├── 4.txt
  8.    └── 5
  9.    ├── 999.txt
  10.    └── yang
  11.    └── ceshi.txt
  12. └── 2.txt
  13. 4 directories, 6 files

2.递归查询-r

  1. [root@redis02 ~]# grep -r "yang" ./1/*
  2. ./1/2/5/yang/ceshi.txt:123yang456
  3. ./1/2/5/999.txt:yang123
  4. ./1/2/2/236.txt:yangwenbo
  5. ./1/2/2/ywb.txt:yangwenbo
  6. ./1/2/4.txt:yangwenbo
  7. ./1/2.txt:yang
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注