Linux 中Grep的那些事儿

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,或者存储到相关的文件中。

贼6贼6贼6的~  重要的事情说三遍,以前不太在意,只有真正遇到批量或者筛选的时候,才会发现,grep会比excel更优秀,更好用~

Linux中的Grep基本语法

Linux 中Grep的那些事儿_第1张图片

语法解析

      -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

Linux 中Grep的那些事儿_第2张图片

语法不多bb,作为一名开发程序猿,我觉得知道一部分就足够了,为了节约时间,减少工作量,少写一些什么程序、代码,一两条命令全部搞定,是不是很棒?

常用用法

1、过滤文件中,单个条件

# 显示过滤条件的内容
cat test.txt | grep "hello"
# 显示过滤条件及行号
cat test.txt | grep -n "hello"

  Linux 中Grep的那些事儿_第3张图片

2、过滤多个条件(“&&”和“||”)

2.1、与条件(多个条件同时满足)

# 显示过滤两个字段
cat test.txt | grep "hello" | grep "you"

#显示过滤多个字段
cat test.txt | grep "hello" | grep "you" | grep ...

  Linux 中Grep的那些事儿_第4张图片

2.2、或条件(任意条件满足即可)

# 匹配多个条件满足其中之一即可
grep -E "hello | you" test.txt

# 匹配多个条件满足其中之一即可
grep -E "hello | you | ka" test.txt

# 匹配多个条件满足其中之一即可
grep -E "hello | you | ka | ..." test.txt

   Linux 中Grep的那些事儿_第5张图片

3、反选过滤,不包含过滤

# 匹配不包含这些关键字符
grep -v "hello \| you " test.txt

# 匹配不包含这些关键字符(n个)
grep -v "hello \| you \| ka \| .." test.txt

   Linux 中Grep的那些事儿_第6张图片

 

ok,就到这里了,方便~ 快捷的过滤方法,赶超Excel~ 

你可能感兴趣的:(大数据,Linux)