美文网首页
grep 入门用法总结

grep 入门用法总结

作者: jyjz2008 | 来源:发表于2020-02-03 11:04 被阅读0次

参考资料

  1. Grep - An introduction to grep and egrep. How to search for strings inside of files.

  2. 15 Practical Grep Command Examples In Linux / UNIX

  3. 在命令行输入 man grep 后看到的内容

正文

参考资料2 中举了不少具体的例子,我结合自己的理解也写了几个小例子,列举如下。

本文要用到的文件为 rank.txt,其完整内容如下(其内容是 https://en.wikipedia.org/wiki/Template:Current_ITTF_Men%27s_World_Ranking
页面提供的乒乓球男单排名)

ITTF Men's World Ranking, as of October 2019[1]
#   Player  Points  Move†
1    Xu Xin (CHN)   15,980  Steady
2    Fan Zhendong (CHN) 15,200  Steady
3    Ma Long (CHN)  14,955  Steady
4    Lin Gaoyuan (CHN)  14,885  Steady
5    Tomokazu Harimoto (JPN)    13,465  Steady
6    Hugo Calderano (BRA)   12,790  Steady
7    Timo Boll (GER)    12,445  Steady
8    Liang Jingkun (CHN)    12,190  Steady
9    Mattias Falck (SWE)    12,140  Steady
10   Lin Yun-ju (TPE)   11,055  Steady
11   Koki Niwa (JPN)    10,840  Steady
12   Dimitrij Ovtcharov (GER)   10,763  Steady
13   Jun Mizutani (JPN) 10,195  Steady
14   Jang Woo-jin (KOR) 10,070  Steady
15   Patrick Franziska (GER)    9,735   Steady
16   Wong Chun Ting (HKG)   9,690   Steady
17   Lee Sang-su (KOR)  9,615   Steady
18   Liam Pitchford (ENG)   9,500   Steady
19   Quadri Aruna (NGR) 8,965   Steady
20   Simon Gauzy (FRA)  8,500   Steady

下面举几个具体的例子

  1. 查看马龙的信息
# 方法1
# 在 rank.txt 中查找与 'Ma Long' 匹配的行
grep 'Ma Long' rank.txt

# 方法2
# 在 rank.txt 中查找与 'ma long' 匹配的行(不区分大小写)
grep -i 'ma long' rank.txt

效果如下图


image.png

在上图中我们可以看到马龙的排名是第三,于是就想顺便看看马龙前面两名是谁

  1. 查看马龙所在的行(称为L0)以及L0前面两行
# -B 选项中的 B 可以理解成 before context(可以参考 man grep)
grep -B 2 'Ma Long' rank.txt

效果如下图


image.png
  1. 查看马龙所在的行(称为L0)以及L0前后各两行
# -C 选项中的 C 可以理解成 context(可以参考 man grep)
grep -C2 'Ma Long' rank.txt

效果如下图


image.png
  1. 查看马龙所在的行(称为L0)以及L0后两行
# -A 选项中的 A 可以理解成 after context(可以参考 man grep)
grep -A 2 'Ma Long' rank.txt

效果如下图


image.png
  1. 查看日韩两国的选手信息
# -E 选项中的 E 可以理解为 extended regexp(扩展正则表达式),关于扩展正则表达式的介绍可以 参考https://www.grymoire.com/Unix/Regular.html 一文

grep -E 'KOR|JPN' rank.txt

效果如下图


image.png
  1. 查看剔除中国大陆选手后的所有选手的信息
# -v 选项中的 v 可以理解为 invert match(反向匹配,也就是说会将不匹配的行保留)
grep -v 'CHN' rank.txt

效果如下图


image.png

总结

本文简单展示了 grep 命令中 -A -B -C -E -i -v 选项的用法,详细的讲解可以参考本文开头列举的参考资料

相关文章

网友评论

      本文标题:grep 入门用法总结

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