购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 利用grep命令进行文本过滤

grep命令可能是使用得最为广泛的文本操作命令。你可以利用该命令对文件显示的内容进行过滤。例如,如果想要查看snort.conf文件中所有包含单词output的行,那么你可以使用cat命令,并要求其只显示这些行(如代码清单2-5所示)。

代码清单2-5 显示包含由grep命令指定的关键字或短语实例的行

该命令将首先查看snort.conf,然后使用管道(|)将其内容发送给grep命令,后者将该文件视为输入,查找单词output出现的行,并且仅显示这些行。对于在Linux系统中进行操作来说,grep命令是一条非常强大而必要的命令,因为它可以为你节省在一个文件中搜索一个单词或命令每次出现的位置所花费的几个小时时间。

挑战:使用grep、nl、tail和head命令

假设你想利用刚刚学到的至少四条命令来显示包含内容# Step #6: Configure output plugins的一行之前倒数五行的内容。你应该怎么做?(提示:关于这些命令我们还有很多选项未曾讨论。你可以利用Linux系统内建命令man来学习更多的命令。例如,man tail将展示tail命令的帮助文件。)

有很多种方法能够完成这次挑战。在此,我将为你演示其中一种方法,以便修改某些行从而实现相关操作,而你的任务则是寻找另一种方法。

第1步

我们可以看到,包含内容# Step #6: Configure output plugins的行是第512行,而我们知道自己想要的是第512行之前倒数5行以及第512行本身(即第507~512行)。

第2步

在这里,我们利用tail命令抓取从第507行开始到文件结尾的内容,然后将其输出到head命令中,从而实现仅返回起始6行,这就给出了包含内容# Step #6: Configure output plugins的行之前的倒数5行,以及该行本身。 5U6nd4RYhZ4x740l7BiYE9N4EFP3ZpxCTRZujDGFN9jrUt9G7RPukmjAhziv6Pp/

点击中间区域
呼出菜单
上一章
目录
下一章
×