LINUX三剑客(grep、sed、awk)

2023-12-26 09:20:00

LINUX三剑客(grep、sed、awk)

第一章 linux-grep与正则表达式



前言

提示:这里可以添加本文要记录的大概内容:
linux三剑客指的是grep、sed、awk三个命令。
grep功能:查找
sed功能:编辑
awk功能:分割处理


提示:以下是本篇文章正文内容,下面案例可供参考

一、grep

文本过滤(模式:pattern)工具。grep、egrep

模式:【正则表达式元字符串】或 【文本字符串】 作为过滤条件

grep [options] pattern [file...]

-- 影响检索结果
-i 忽略字符大小写
-v 排除匹配结果
-w 匹配整个单词
-e 实现多个【文本字符串】选项间的逻辑or关系 
   eg: grep –e 'student' -e 'teacher' file (匹配student 或 teacher字符)
-E 实现【正则表达式元字符串】逻辑匹配,相当于egrep。
   eg:grep -E '^student$|^teacher$' file (匹配以student开头结尾 或 以teacher开头结尾的字符)

-- 改变输出形式
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行

二、grep实操演练

1、导入文本文件(linux_grep.txt)

my friend is a teacher	# 全小写
My Friend Is A Teacher	# 全大写
MY FRIEND IS A TEACHER	# 首字母大写
teacher					# 全小写 + teacher开头结尾
Teacher					# 全大写 + teacher开头结尾
TEACHER					# 首字母大写 + teacher开头结尾
i'm a student
I'm A Student
I'M A STUDENG			# student最后一个字母t改成了g
student
Student
STUDENG					# student最后一个字母t改成了g
i'm a studentteacher
I'm A Studentteacher
I'M A STUDENGteacher	# student最后一个字母t改成了g
studentteacher
Studentteacher
STUDENGteacher			# student最后一个字母t改成了g

导入结果:
在这里插入图片描述

2、grep 命令基础演示

2.1、grep -i (忽略字符大小写)
grep 'teacher' linux_grep.txt   	#查找文件linux_grep.txt内容包含teacher的行
grep -i 'teacher' linux_grep.txt   	#查找文件linux_grep.txt内容包含teacher(忽略大小写)的行

在这里插入图片描述

2.2、grep -v (排除匹配结果)
grep 'teacher' linux_grep.txt   	#查找文件linux_grep.txt内容包含teacher的行
grep -v 'teacher' linux_grep.txt   	#查找文件linux_grep.txt内容不包含teacher的行

在这里插入图片描述

2.3、grep -w (匹配整个单词)
grep 'teacher' linux_grep.txt   	#查找文件linux_grep.txt内容包含teacher的行
grep -w 'teacher' linux_grep.txt   	#查找文件linux_grep.txt内容以teacher开头结尾的行

在这里插入图片描述

2.4、grep -e (实现多个【文本字符串】选项间的逻辑or关系 )
grep 'teacher' linux_grep.txt   	#查找文件linux_grep.txt内容包含teacher的行
grep -e 'teacher' -e 'student' linux_grep.txt   	#查找文件linux_grep.txt内容包含teacher 或 student 的行

在这里插入图片描述

2.5、grep -E (实现【正则表达式元字符串】逻辑匹配)
grep 'teacher' linux_grep.txt   	#查找文件linux_grep.txt内容包含teacher的行
grep -E 'teacher|student' linux_grep.txt   	#查找文件linux_grep.txt内容包含teacher 或 student 的行

在这里插入图片描述

3、grep 命令进阶

#查找文件linux_grep.txt内容包含teacher 或 student 的行(忽略大小写)
grep -i -E 'teacher|student' linux_grep.txt   	

#查找文件linux_grep.txt内容不包含teacher 或 student 的行(忽略大小写)
grep -i -v -E 'teacher|student' linux_grep.txt   	

#查找文件linux_grep.txt内容包含teacher(整个单词) 或 student(整个单词) 的行。非开头结尾
grep -w -E 'teacher|student' linux_grep.txt 

#查找文件linux_grep.txt内容已teacher开头结尾 或 已student开头结尾 的行
grep -E '^teacher$|^student$' linux_grep.txt 
grep -e '^teacher$' -e '^student$' linux_grep.txt 

#查找文件linux_grep.txt内容 'a s' 的行
grep -E 'a\s+s' linux_grep.txt 

文章来源:https://blog.csdn.net/chi_bai_001/article/details/135178241
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。