1. Learn
  2. /
  3. 课程
  4. /
  5. Shell 入门

Connected

道练习

如何筛选包含特定值的行?

head 和 tail 用于选择行, cut 用于选择列, 而 grep 则根据内容选择行。 在最简单的用法中, grep 接受一段文本,后跟一个或多个文件名, 并打印这些文件中所有包含该文本的行。 例如, grep bicuspid seasonal/winter.csv 会打印 winter.csv 中包含 "bicuspid" 的行。

grep 也可以搜索模式; 我们将在下一门课程中进一步探讨。 现在更重要的是了解一些 grep 的常用选项:

  • -c:打印匹配行的数量,而不是行本身
  • -h:在搜索多个文件时,不打印文件名
  • -i:忽略大小写(例如,将 "Regression" 和 "regression" 视为匹配)
  • -l:打印包含匹配项的文件名,而不是匹配的内容
  • -n:为匹配的行打印行号
  • -v:反转匹配,即只显示不匹配的行

说明 1/3

undefined XP
  • 1

    在主目录下用一条命令,打印 seasonal/autumn.csv 中所有包含单词 molar 的行的内容。不要使用任何选项。

  • 2

    反转匹配,查找 seasonal/spring.csv 中所有不包含单词 molar 的行,并显示其行号。 请记住,良好的风格是将所有选项放在其他值(如文件名或搜索词 "molar")之前。

  • 3

    统计 autumn.csv 和 winter.csv 中合计有多少行包含单词 incisor。 (同样,从主目录运行一条命令完成。)