grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,或者存储到相关的文件中。
贼6贼6贼6的~ 重要的事情说三遍,以前不太在意,只有真正遇到批量或者筛选的时候,才会发现,grep会比excel更优秀,更好用~
Linux中的Grep基本语法
语法解析
-E :开启扩展(Extend)的正则表达式。
-i :忽略大小写(ignore case)。
-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
-n :显示行号
-w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
-c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
-o :只显示被模式匹配到的字符串。
--color :将匹配到的内容以颜色高亮显示。
-A n:显示匹配到的字符串所在的行及其后n行,after
-B n:显示匹配到的字符串所在的行及其前n行,before
-C n:显示匹配到的字符串所在的行及其前后各n行,context
语法不多bb,作为一名开发程序猿,我觉得知道一部分就足够了,为了节约时间,减少工作量,少写一些什么程序、代码,一两条命令全部搞定,是不是很棒?
常用用法
1、过滤文件中,单个条件
# 显示过滤条件的内容
cat test.txt | grep "hello"
# 显示过滤条件及行号
cat test.txt | grep -n "hello"
2、过滤多个条件(“&&”和“||”)
2.1、与条件(多个条件同时满足)
# 显示过滤两个字段
cat test.txt | grep "hello" | grep "you"
#显示过滤多个字段
cat test.txt | grep "hello" | grep "you" | grep ...
2.2、或条件(任意条件满足即可)
# 匹配多个条件满足其中之一即可
grep -E "hello | you" test.txt
# 匹配多个条件满足其中之一即可
grep -E "hello | you | ka" test.txt
# 匹配多个条件满足其中之一即可
grep -E "hello | you | ka | ..." test.txt
3、反选过滤,不包含过滤
# 匹配不包含这些关键字符
grep -v "hello \| you " test.txt
# 匹配不包含这些关键字符(n个)
grep -v "hello \| you \| ka \| .." test.txt
ok,就到这里了,方便~ 快捷的过滤方法,赶超Excel~