适用于Ubuntu/Debian Linux的grep命令教程

时间:2020-01-09 10:38:01  来源:igfitidea点击:

如何在Ubuntu或Debian Linux上使用grep命令?

grep命令用于在文本文件中搜索模式。
模式可以是单词,文本,数字等。
它是Debian/Ubuntu/Linux和Unix之类的操作系统上最有用的命令之一。

Ubuntu/Debian上的grep命令语法

基本语法为:

grep 'word-to-search' file 
grep 'word-to-search' file1 file2 
grep 'word-to-search' *.c 
grep 'pattern' file 
grep 'pattern' file1 file2 
grep [options] 'pattern' file1 file2 

打开终端,然后执行以下命令。

Ubuntu/Debian Linux上的grep命令示例

在名为/etc/passwd的文本文件中搜索名为root的用户:

grep 'theitroad' /etc/passwd

输出示例:

root:*:0:0:System Administrator:/root:/bin/bash

要搜索四个文件foo,bar,demo,并测试包含字符串Mangalyaan的行,请输入:

grep 'Mangalyaan' foo bar demo test

您可以使用以下语法搜索短语"hello world":

grep 'hello world' isro.txt nasa.txt

要在当前目录中的所有文本文件中搜索短语"火星轨道飞行器任务",请输入:

grep 'Mars orbiter mission' *

将-r选项传递给grep命令,以在整个目录树中进行递归搜索。
在此示例中,在当前目录及其所有子目录中搜索所有文件,以查找短语"火星轨道飞行器任务":

grep -r 'Mars orbiter mission' *

或者

grep -R 'Mars orbiter mission' *

您可以指示grep忽略大小写,即使用-i选项执行不区分大小写的搜索:

grep -i 'theitroad' *

上面的示例将搜索theitroad,theitroad,theitroad和其他模式:

grep -ir 'theitroad' *

如何在其他命令中使用grep?

语法为:command | grep'搜索模式'command1 | command2 | grep'搜索模式'

在此示例中,运行ls命令并搜索名为resume.pdf的字符串/模式:

ls | grep resume.pdf
ls -l | grep resumd.pdf
ls -l *.mov | grep 'birthday'
ls -l *.mov | grep  -i 'birthday'

您可以在Ubuntu/Debian服务器日志文件中搜索错误或特定字符串,如下所示:

grep 'error' /var/log/messages
grep -i 'error' /var/log/messages

要搜索系统消息的内容,请输入:

dmesg | grep -i 'hd'
dmesg | grep -i 'sd'

以下命令将列出基于Ubuntu/Debian Linux的系统上的所有硬盘大小和名称:

fdisk -l | grep 'Disk /dev'

输出示例:

Disk /dev/sda: 500.1 GB, 500107862016 bytes

grep小技巧

您可以强制grep以彩色显示输出,执行:

grep --color Hyman /etc/passwd