9.5 在文本文件中搜索匹配的模式
grep
locate
命令可以搜索文件和目录的名称,但是不能搜索文件的内容。要搜索文件内容,应该使用grep
命令。grep
的处理过程基本上就是,为它提供一个搜索想要匹配的模式,指定要搜索的一个或一组文件(甚至是整个硬盘空间),然后grep
就会输出能够与搜索模式匹配的各行内容的列表。
$ grep pain three_no_more_forever.txt
all alone and in pain
这个例子是用grep
来检查一个文件中是否包含pain这个词(文件的内容是Peter Von Zer Muehlen写的一首名为“Three No More Forever”的诗)。当然,这个文件中有pain这个词,所以grep
就在终端界面上打印出包含搜索内容的那一行。但如果想一次在多首Peter所写的诗中进行搜索,又该怎么办呢?使用通配符可以解决这一问题!
$ grep pain *
fiery inferno in space.txt:watch the paint peel,
three_no_more_forever.txt:all alone and in pain
the speed of morning.txt:of a Chinese painting.
8 hour a day.txt:nice paint job too
ghost pain.txt:Subject: ghost pain
注意,grep
找出了所有使用pain
字符串的地方,包括paint
和painting
。还要注意grep
是如何显示每个包含搜索内容的文件名,以及包含搜索内容的相应文本行的。到目前为止,用grep
在文件中进行搜索还是相当简单的。所以现在应该把搜索复杂化一些,这正是下一节将要介绍的内容。