Shell三剑客:文本过滤工具——grep

一、简介:过滤,查找文档中的内容

二、分类

  • grep
  • egrep------扩展支持正则
  • \w所有字母与数字,称为字符[a-zA-Z0-9] 'l[a-zA-Z0-9]*ve' === 'l\w*ve'
  • \W所有字母与数字之外的字符,称为非字符 'love[^a-zA-Z0-9]+' === 'love\W+'
  • \b词边界 '\<love\>' === '\blove\b'
  • fgrep------不支持正则
cs 复制代码
[root@localhost ~]# fgrep . 1.txt 
l.ve

三、返回值

  • 0 是找到
  • 1 是没有
  • 2 找到地不对
cs 复制代码
[root@localhost ~]# grep 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# echo $?
0
[root@localhost ~]# grep 'root1' /etc/passwd
[root@localhost ~]# echo $?
1
[root@localhost ~]# grep 'root' /etc/passwd1
grep: /etc/passwd1: 没有那个文件或目录
[root@localhost ~]# echo $?
2

四、参数

cs 复制代码
#grep -q 静默
[root@localhost ~]# grep -q love 1.txt 
[root@localhost ~]# echo $?
0

#grep -v 取反
[root@localhost ~]# grep -v love 1.txt 
#qian
#yoa
#huang
kai
kong
cai

#grep - R 可以查目录下面的
[root@localhost ~]# grep -R kai /home
/home/1.txt:kai

#grep -o 只找到这个关键字
[root@localhost ~]# grep -o love 1.txt 
love
love

#grep - B2 前两行
[root@localhost ~]# grep -B2 love 1.txt 
abcdefj
adc
love

#grep - A2 后两行
[root@localhost ~]# grep -A2 love 1.txt 
love
Love
1ove

#grep -C2 上下两行
[root@localhost ~]# grep -C2 love 1.txt 
abcdefj
adc
love
Love

#egrep -l 只要文件名
[root@localhost ~]# egrep -l -R kai /home
/home/1.txt

#egrep -n 带行号
[root@localhost ~]# grep -n love 1.txt 
14:love
21:loveable

五、示例

cs 复制代码
//grep -E或 egrep 使用
# egrep 'NW' datafile.txt
# egrep 'NW' d*.txt
# egrep '^n' datafile.txt
# egrep '4$' datafile.txt
# egrep TB Savage datafile.txt
# egrep 'TB Savage' datafile.txt
# egrep '5\..' datafile.txt
# egrep '1.5' datafile.txt
# egrep'^[we]' datafile.txt
# egrep '[^0-9]' datafile
# egrep '[A-Z][A-Z] [A-Z]' datafile
# egrep'ss*'datafile
# egrep '[a-Z](9)' datafile L
# egrep I<north' datafile
# egrep l<northi>' datafile
# egrep l<[a-rj.*nl>' datafile
# egrep '^nlw*\W' datafile
# egrep lbnorthib' datafile
# egrep 'NW | EA' datafile
# egrep '3+' datafile
# egrep '2\.?[0-9]' datafile
# egrep(no)+' datafile
# egrep 'S(hlu)' datafile
# egrep 'Sh lu' datafile
相关推荐
wdfk_prog6 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
盟接之桥7 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿7 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
湘-枫叶情缘7 小时前
1990:种下那棵不落叶的树-第6集 圆明园的对话
linux·系统架构
Fcy6488 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满8 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠8 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Gary Studio8 小时前
rk芯片驱动编写
linux·学习
mango_mangojuice8 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
Harvey9038 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s