第一章 linux-grep与正则表达式
提示:这里可以添加本文要记录的大概内容:
linux三剑客指的是grep、sed、awk三个命令。
grep功能:查找
sed功能:编辑
awk功能:分割处理
提示:以下是本篇文章正文内容,下面案例可供参考
文本过滤(模式: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, 前后各#行
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
导入结果:
grep 'teacher' linux_grep.txt #查找文件linux_grep.txt内容包含teacher的行
grep -i 'teacher' linux_grep.txt #查找文件linux_grep.txt内容包含teacher(忽略大小写)的行
grep 'teacher' linux_grep.txt #查找文件linux_grep.txt内容包含teacher的行
grep -v 'teacher' linux_grep.txt #查找文件linux_grep.txt内容不包含teacher的行
grep 'teacher' linux_grep.txt #查找文件linux_grep.txt内容包含teacher的行
grep -w 'teacher' linux_grep.txt #查找文件linux_grep.txt内容以teacher开头结尾的行
grep 'teacher' linux_grep.txt #查找文件linux_grep.txt内容包含teacher的行
grep -e 'teacher' -e 'student' linux_grep.txt #查找文件linux_grep.txt内容包含teacher 或 student 的行
grep 'teacher' linux_grep.txt #查找文件linux_grep.txt内容包含teacher的行
grep -E 'teacher|student' linux_grep.txt #查找文件linux_grep.txt内容包含teacher 或 student 的行
#查找文件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