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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!