linux中的grep命令

grep是一个多用途的文本搜索工具,linux中使用非常频繁,并且使用很灵活,可以是变量,也可以是字符串。最基本的用法有以下两种:

1.搜索内容中无空格,可以直接执行grep命令,比如:grep pass a.txt,表示在a.txt文件中搜索pass所在的行。

2.如果搜索内容中有空格,则需要使用单引号或者双引号把搜素内容引起来,比如:

grep "hello all" a.txt或者grep 'hello all' a.txt,如果不加单双引号,则提示搜搜错误,无法识别,因为不加引号,直接grep hello all a.txt,表示在all 和a.txt中搜索hello,这肯定是不对的

 

grep的一些参数命令:

1.grep -c option file:显示文件中包含搜索内容行数,比如前面的命令表示显示 file中包含option内容的行数是几

2. grep -n option flie:列出所有的匹配行,并在最前面添加行的序列数

3. grep -v option file:显示文件中不包含所搜索内容的行数,这个和-c的参数正好相反

4. gep -i option file:列出所搜索内容的匹配行,搜索过程中不区分大小写

5. grep -l option *:列出所有包含option内容的文件的名

6. grep -r option :对当前目录和所有的子目录进行搜索

7. grep -w option file:精确搜索,可以说准确性搜索,比如:grep -w b* a.txt:此命令执行时,*不会默认为任何字符,只表示字面意思,就是一个*字符.

8. grep -x option file:完全匹配输出,比如:grep -x hello a.txt,只会输出某一行存在hello字符串,并且此行仅包含hello的内容。假设a.txt中有一行“hello all”,执行上述命令,此行不会被搜索到。

 

利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。下面来看看管道是如何在构造一条Linux命令中得到应用的。

1.利用一个管道

rpm -qa|grep licq

这条命令使用一个管道符“|”建立了一个管道。管道将rpm -qa命令的输出(包括系统中所有安装的RPM包)作为grep命令的输入,从而列出带有licq字符的RPM包来。
4.利用多个管道

cat /etc/passwd | grep /bin/bash | wc -l

这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有“/bin /bash”的所有行;第二个管道将grep的输出送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash。


版权声明:本文为Strawberry_Pineapple原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。