美文网首页
Linux文本处理三剑客之 grep

Linux文本处理三剑客之 grep

作者: 奇点er | 来源:发表于2022-08-07 18:45 被阅读0次

grep 命令的作用是从文本文件或管道中筛选匹配的行及数据。

主要语法格式如下:

grep [OPTIONS] [PATTERN] [FILE]

其中 OPTIONS 表示命令参数;PATTERN 表示匹配模式,即要找匹配的实际文本,可以使文字符号,也可以是正则表达式; FILE 则表示要筛选或过滤的目标文件。

为了测试,我们先创建名为 test.txt 的文本,内容如下:

hello
world

# nice to meet you!

what's your name?

test
I'm xsir

其中命令参数主要有以下几种:

  1. - v

该命令表示反选,即排除掉匹配的行,显示不匹配的行。

命令

grep -v <PATTERN> <FILE>

示例

# 筛选出不包含 you 字符串的行
>>grep -v "you" test.txt
hello
world



test
I'm xsir
  1. -n

该命令表示显示匹配到的行及行号。

命令

grep -n <PATTERN> <FILE>

示例

# 筛选出包含有字符串 you 的行并且显示行号
>> grep -n 'you' test.txt
4:# nice to meet you!
6:what's your name?
  1. -c

该命令表示统计匹配到的行数(不是次数)。

命令

grep -c <PATTERN> <FILE>

示例

# 显示匹配到字符串 you 的行数
>> grep -c "you" test.txt
2
  1. -E

该命令表示使用正则表达式进行匹配 ,也可以使用 egrep 命令代替。

命令

grep -E <PATTERN> <FILE>
# 或
egrep <PATTERN> <FILE>

示例

# 筛选出包含字符串 you 或 xsir 的行 也可使用 `egrep "you|xsir" test.txt`
>> grep -E "you|xsir" test.txt
# nice to meet you!
what's your name?
I'm xsir
  1. -w

该命令表示只匹配过滤的单词。

命令

grep -w <PATTERN> <FILE>

示例

# 筛选出包含单词 you 的行
>> grep -w "you" test.txt
# nice to meet you!
  1. -o

该命令表示只输出匹配的内容。

命令

grep -o <PATTERN> <FILE>

示例

# 此处为了显示更加明晰,将 `-n` 和 `-o` 联合使用,筛选并输出匹配到字符串 you 的行
>> grep -on "you" test.txt 
4:you
6:you

巧用上面的命令能够大大提高我们的工作效率,比如上面的文本中包含了很多空格及注释行,在实际预览的时候我们可能想要过滤掉这些内容,使用以下方式即可:

# 过滤掉空行及注释行
>> grep -Ev "^$|#" test.txt
hello
world
what's your name?
test
I'm xsir

相关文章

  • Grep

    Linux文本处理三剑客 grep:文本过滤(模式:pattern)工具grep, egrep, fgrep(不支...

  • grep 及正则表达式

    Linux 上文本处理三剑客 grep:文本过滤(模式:pattern)工具grep(基本匹配),egrep(扩展...

  • note_6.3_grep命令与基本正则表达式

    文本处理工具 Linux上文本处理三剑客:  grep,egrep, fgrep:文本过滤工具(模式:patter...

  • Linux上文本处理三剑客grep及正则表达式

    Linux上文本处理三剑客: grep, egrep, fgrep:文本过滤工具,通过(模式:pattern)过滤...

  • grep常用选项

    grep是Linux中最常用的文本处理工具之一,与sed,awk合称Linux中的三剑客。grep的全称是:Glo...

  • awk

    awk的简介和功能 awk: Linux 文本处理三剑客:grep、sed和awk。其中grep是一种文本过滤工具...

  • Linux运维之道(9)——Linux三剑客之grep命令及其正

    @(Linux)[Linux三剑客之grep及其正则表达式] HowTo: Use grep Command In...

  • Linux系统中awk和sed有什么区别?

    Linux文本三剑客,即awk、grep、sed,这三个命令是Linux中常用的文本处理命令,主要作用是对文本内容...

  • sed介绍

    sed是什么 sed是linux文本处理工具三剑客(grep,sed,awk)之一,用来处理文本的流编辑工具。主要...

  • 简谈linux文本处理-sed

    文本处理能力是Linux强大优势之一,其中grep,sed和awk被称为Linux文本处理三板斧。grep 主要配...

网友评论

      本文标题:Linux文本处理三剑客之 grep

      本文链接:https://www.haomeiwen.com/subject/zcxiwrtx.html