linux grep命令

时间:2020-02-23 14:40:40  来源:igfitidea点击:

General Regular Expression Parser (grep)是每个Linux管理员使用的最强大的命令之一。
使用它,我们应该能够搜索文件内容并在命令输出中执行搜索

在本教程中,我们将通过命令使用,向我们展示一些应该节省大量时间的有用和有用的示例。

安装grep

要开始使用该命令,请先检查系统是否已在系统上安装。
如果未安装,请在终端中运行以下命令。

sudo apt install grep

我们可以检查命令版本以确保已成功安装。

grep --version

语法

grep [option/s] [pattern] [file]

[选项/s]可以是:

  • -i>用于确保搜索模式无论其均方面的敏感度如何。
  • -c>预览,匹配模式的计数。
  • -v>选择不包含给定模式的非匹配行。
  • -n>预览行号。

其中[模式]是正则表达式,[文件]是我们要在其内容中搜索的文件。

例子

我们将在我们的案例方案示例中创建一个用于使用的测试文件。

vi grep_igi

创建一个新文件

粘贴Grep_igi文件中的以下行:

Hi Guys,
i am hend.
And this is a tutorial file for the usage of the grep commad.
The next 2 lines are empty lines.

Hope You Will Enjoy This Tutorial. 
Bye.

示例1.要在单个文件中搜索字符串。

grep "hend" grep_igi

示例2.让我们从Grep_igi文件中制作副本,稍后将使用它。

cp grep_igi grep_igi2

现在要在多个文件中搜索特定字符串,请使用下一个命令。

grep "hend" grep_igi grep_igi2

在多个文件中搜索某个字符串

示例3.无论其大小写如何,要在文件中搜索某个字符串。

grep -i "tutorial" grep_igi

搜索不区分大小写的字符串

示例4.无论大小写的情况如何,要在文件中搜索某个模式。

grep -i "the.*lines" grep_igi

这意味着搜索任何行以"the"字符串"并以"lines"结尾。
其中*表示零个或者多个字符,而-i选项是忽略"the"和"lines"的大小写。

但是,如果我们没有使用-i选项,则不会产生结果。

grep "the.*lines" grep_igi

使用正则表达式和区分大小写搜索

示例5.要在我们搜索模式后显示两行。

grep -A 2 "hend" grep_igi

在某个字符串之后预览行数

示例6.在我们正在搜索的模式之前显示一行。

grep -B 1 "hend" grep_igi

在某个字符串之前预览行数

示例7.要在我们正在搜索的模式周围显示一行(或者之后)。

grep -C 1 "hend" grep_igi

示例8.要在当前目录中存在的所有文件中搜索某个字符串。

grep -r "Enjoy" *

在当前目录中搜索某个字符串

示例9.要显示不包含给定字符串的所有行。

grep -v -i -e "Enjoy" grep_igi

预览行不包含给定字符串

示例10.要显示包含要搜索的字符串的所有行的计数。

grep -c "this" grep_igi

匹配字符串的预览计数

示例11.要显示包含我们正在搜索的字符串的所有行的计数,无论均值均感受。

grep -c -i "this" grep_igi

预览匹配shell 体不敏感字符串的计数

示例12.显示未匹配模式的计数。

grep -v -c "this" grep_igi

UN匹配字符串的预览计数

示例13.要显示包含要搜索的字符串的所有文件名。

grep -l "this" *

预览包含某个字符串的文件名

示例14.显示行数。

grep -n "this" grep_igi

示例15.要搜索特定命令的输出。
例如,列出由"igi"用户启动的所有运行进程。

ps aux | grep igi