Shell 编程(四):文本三剑客之 Grep

简介: 文本三剑客之 Grep

grep

grep语法格式

方法 命令
方法一 grep [option] [pattern] [ file1,file2...]
方法二 command | grep [option] [pattern] 

选项

选项 含义
-v 不显示匹配行信息
-i 搜索时忽略大小写
-n 显示行号
-r 递归搜索
-E 支持扩展正则表达式
-e 不支持扩展正则表达式
-F 不按正则表达式匹配,按照字符串字面意思匹配
-c 只输出匹配行的数量,不显示具体内容
-w 匹配整词
-x 匹配整行
-l 只列出匹配的文件名,不显示具体匹配行内容

例子

准备文件 cat /etc/passwd > ./passwd.txt

  1. 找普通字符 root,不区分大小写
  2. 统计 password.txt 文本中,有多少行 root 有关的内容
  3. 找出所有允许登录的用户,解释器是 /bin/bash 的行
  4. 找出不允许登录的用户
  5. 找出 root 开头的行
  6. 过滤出除 bin 开头的行,显示行号
  7. 找出系统上 root、yu、nobody 用户的信息
  8. 查找当前目录下有 root 的所有文件
# 找普通字符root,不区分大小写
> grep -ni root passwd.txt 
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
# 统计 password.txt 文本中,有多少行 root 有关的内容
> grep -c root passwd.txt 
2
# 找出所有允许登录的用户,解释器是/bin/bash的行
> grep -n "/bin/bash$" passwd.txt 
1:root:x:0:0:root:/root:/bin/bash
# 找出不允许登录的用户
> grep -n 'nologin$' passwd.txt 
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
# 找出root开头的行
> grep -n '^root' passwd.txt 
1:root:x:0:0:root:/root:/bin/bash
# 过滤出除bin开头的行,显示行号
> grep -nvE '^bin' passwd.txt 
1:root:x:0:0:root:/root:/bin/bash
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
# 找出系统上root、yu、nobody用户的信息
> grep -E '^\<(root|yu|nobody)\>' passwd.txt 
root:x:0:0:root:/root:/bin/bash
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
# 查找当前目录下有 root 的所有文件
> grep -nr root
grep.sh:5:grep -c root passwd.txt
password.txt:1:root:x:0:0:root:/root:/bin/bash
password.txt:10:operator:x:11:0:operator:/root:/sbin/nologin


目录
相关文章
|
3月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
3月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
Shell
Shell编程(下)
Shell编程(下)
109 1
|
2月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
47 1
|
2月前
|
Shell Linux 开发工具
|
2月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
81 12
|
3月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
3月前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
49 12
|
3月前
|
Shell Linux
Shell 编程 编写hello word
Shell 编写hello word
55 5