在Unix中的grep命令

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

在本教程中,我们将在Unix中看到Grep命令。
Grep命令代表"全局正则表达式打印",用于搜索文本或者搜索给定文件以获取包含与给定字符串或者单词的匹配的行。
它是Linux和Unix的操作系统中的强大文件模式搜索器。
让我们看看它是如何使用的。

语法

$grep [OPTIONS] PATTERN [FILE...]

安装grep

Debain,请使用以下命令

$sudo apt-get install grep

对于Redhat,CentOS和Fedora发行版

$sudo yum install grep

使用grep

如果要在/var.logs.application.log文件中搜索用户igi,请使用以下命令。

$grep igi /var/logs/application.log

输出将是Application.log文件中的所有行。
匹配字符串igi。
在我的系统输出的上面命令

$grep igi /var/logs/application.log

igi:X:1000:1000:igi ,:/HOME/igi:/BIN/BASH

如果没有任何匹配搜索字符串,Grep的输出将是空白的。

Grep命令区分大小写。
如果我们想在没有案例敏感的情况下工作,请使用-i选项

$grep -i igi /var/logs/application.log

这将显示所有与igi,igi,igi和所有其他组合匹配的行。

我们还可以在多个文件中搜索字符串。

$grep -i igi application.log applicationBackup1.logapplicationBackup2.log

上面的命令将在Application.log ApplicationBackup1.logapplicationBackup2.log文件中搜索igi。

如果要使用字符串在当前目录中搜索每个文件。

$grep igi *

这将在当前目录中搜索带有字符串igi的每个文件。

获取具有特定字符串的所有文件的名称。

$grep -l igi *

如果字符串包含空格,请将其用双引号括起来

$grep -i “igi Blog" *

要突出显示成功的匹配,请使用 - 颜色选项

$grep -color igi application.log

如果要获取找到字符串的行号

$grep-n igi application.log

grep命令允许我们使用-r选项搜索子目录。
-R告诉Grep递归地执行其搜索。

$grep -r igi /etc/

这将读取每个目录下的所有文件以用于字符串igi。

默认情况下,Grep显示具有匹配字符串的整行。
如果要仅显示匹配的字符串,请使用-o选项

$grep -o igi application.log

使用grep与其他命令

我们还可以使用流水线(|)符号使用Grep命令与其他命令组合使用。
这个选项非常方便。

$ls /usr/bin | grep zip

Grep将读取驻留在/usr/bin目录中的所有文件,并将显示文件名包含字符串zip的文件。

$ls /usr/bin | grep -v zip

这将打印没有字符串zip的所有文件名。
这就像以Grep命令应用不是运算符。

$ls /usr/bin | grep -c zip

上面的命令将提供具有字符串zip的文件数。

$ls /usr/bin | grep -cv zip