grep 命令的作用是从文本文件或管道中筛选匹配的行及数据。
主要语法格式如下:
grep [OPTIONS] [PATTERN] [FILE]
其中 OPTIONS 表示命令参数;PATTERN 表示匹配模式,即要找匹配的实际文本,可以使文字符号,也可以是正则表达式; FILE 则表示要筛选或过滤的目标文件。
为了测试,我们先创建名为 test.txt
的文本,内容如下:
hello
world
# nice to meet you!
what's your name?
test
I'm xsir
其中命令参数主要有以下几种:
- v
该命令表示反选,即排除掉匹配的行,显示不匹配的行。
命令
grep -v <PATTERN> <FILE>
示例
# 筛选出不包含 you 字符串的行
>>grep -v "you" test.txt
hello
world
test
I'm xsir
-n
该命令表示显示匹配到的行及行号。
命令
grep -n <PATTERN> <FILE>
示例
# 筛选出包含有字符串 you 的行并且显示行号
>> grep -n 'you' test.txt
4:# nice to meet you!
6:what's your name?
-c
该命令表示统计匹配到的行数(不是次数)。
命令
grep -c <PATTERN> <FILE>
示例
# 显示匹配到字符串 you 的行数
>> grep -c "you" test.txt
2
-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
-w
该命令表示只匹配过滤的单词。
命令
grep -w <PATTERN> <FILE>
示例
# 筛选出包含单词 you 的行
>> grep -w "you" test.txt
# nice to meet you!
-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
网友评论